1. 程式人生 > >C語言資料結構——雙迴圈連結串列的插入操作順序

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而使得插入失敗!

雙向迴圈連結串列的插入可以記為先搞定要插入的節點的前驅和後繼,再搞定後節點的前驅,最後解決前節點的後繼