工作闲暇时间,把代码过程较好的代码片段收藏起来,下边资料是关于C++算法之双向链表的代码,应该是对各朋友有些用处。
typedef struct _DOUBLE_LINK_NODE { int data; }DOUBLE_LINK_NODE; 复制代码(2)创建双向链表节点
{ assert(NULL != pDLinkNode); memset(pDLinkNode, 0, sizeof(DOUBLE_LINK_NODE)); pDLinkNode->data = value; return pDLinkNode; }复制代码(3)删除双向链表
{ return ; free(pNode); delete_all_double_link_node(pDLinkNode); }复制代码(4)在双向链表中查找数据
{ if(NULL == pDLinkNode) return NULL; while(NULL != pNode){ if(data == pNode->data) return pNode; pNode = pNode ->next; } return NULL; } 复制代码(5)双向链表中插入数据
{ if(NULL == ppDLinkNode) return FALSE; pNode = create_double_link_node(data); assert(NULL != pNode); return TRUE; } return FALSE; pNode = create_double_link_node(data); assert(NULL != pNode); while(NULL != pIndex->next) pIndex = pIndex->next; pNode->prev = pIndex; pNode->next = pIndex->next; pIndex->next = pNode; return TRUE; } 复制代码(6)双向链表中删除数据
{ return FALSE; if(NULL == pNode) return FALSE; }else{ } }else{ if(pNode->next) pNode->next->prev = pNode->prev; pNode->prev->next = pNode->next; } free(pNode); return TRUE; } 复制代码(7)统计双向链表中数据的个数
{ int count = 0; while(NULL != pNode){ count ++; pNode = pNode->next; } return count; } 复制代码(8)打印双向链表中数据
{ while(NULL != pNode){ printf("%dn", pNode->data); pNode = pNode ->next; } } 复制代码注意:今天我们讨论的双向链表是非循环的,大家可以考虑一下如果改成循环双向链表,应该怎么写?如果是有序的循环双向链表,又该怎么写?
以上所述就是小编给大家介绍的《C++算法之双向链表的代码》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。