双向链表由于存在前驱指针和后继指针因此须要修改的指针多于单链表,但指针改动的顺序一样重要spa
eg:在节点p的后面插入指针s指针
s->next=p->next;//首先要使要插入的指针指向p->next p->next=s;//再将p的后继指向插入的s便可
注意! 顺序不能调换,不然在将p->next指向s后,原来由p->next指向的节点将会迷失在内存中,很难找到!code
eg:将新的节点插入p节点的后面blog
s->prior=p; s->next=p->next; p->next->perior=s; p->next=s;
注意! 因为第二三行代码均须要使用p->next故要是先执行第四步将改变p->next而使得插入失败!内存
双向循环链表的插入能够记为先搞定要插入的节点的前驱和后继,再搞定后节点的前驱,最后解决前节点的后继io