雙向鏈表與單鏈表的插入操作的區別
雙向鏈表因為存在前驅指針和后繼指針所以需要修改的指針多於單鏈表,但指針改動的順序同樣重要
單鏈表的插入
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而使得插入失敗!
雙向循環鏈表的插入可以記為先搞定要插入的節點的前驅和后繼,再搞定后節點的前驅,最后解決前節點的后繼