双链表进化:优化插入算法
发布时间
阅读量:
阅读量

【(注意:此处第一个节点的bwd为NULL,最后一个节点的fwd为NULL。)
将一个节点添加至双链表中,存在多种情形:
1、在链表中间位置插入
2、在链表起始位置插入
3、在链表末尾位置插入
4、原链表为空的情况,此时相当于同时在起始与末尾位置插入。
对于每种情况,均需调整4个指针:
在第1和第2种情形中,新节点的fwd字段应指向当前链表中的后续节点,而该后续节点的bwd字段则需指向新插入的节点。
在第3和第4种情形中,新节点的fwd字段应设置为NULL,并且根节点的fwd指针需指向该新节点。
在第1和第3种情形下,新节点的bwd字段应指向当前链表中的前驱节点,同时该前驱节点的fwd字段也应指向新加入的节点。
在第2和第4种情形下,新加入的节点其bwd字段应设为NULL,并且根节点的fwd指针应当指向这个新的节点。
- 版本一:
#define TRUE 1
#define FALSE 0
#define NUL '\0'
全部评论 (0)
还没有任何评论哟~
