C语言数据结构——双循环链表的插入操作顺序

双向链表与单链表的插入操作的区别

双向链表因为存在前驱指针和后继指针所以需要修改的指针多于单链表,但指针改动的顺序同样重要

单链表的插入

eg:在节点p的后面插入指针s

s->next=p->next;//首先要使要插入的指针指向p->next
p->next=s;//再将p的后继指向插入的s即可

注意! 顺序不能调换,否则在将p->next指向s后,原来由p->next指向的节点将会迷失在内存中,很难找到!

双向循环链表的插入

eg:将新的节点插入p节点的后面

s->prior=p;
s->next=p->next;
p->next->perior=s;
p->next=s;

注意! 由于第二三行代码均需要使用p->next故要是先执行第四步将改变p->next而使得插入失败!

双向循环链表的插入可以记为先搞定要插入的节点的前驱和后继,再搞定后节点的前驱,最后解决前节点的后继

猜你喜欢

转载自www.cnblogs.com/studymakesmehappy/p/9962103.html
今日推荐