C語言數據結構——雙循環鏈表的插入操做順序

雙向鏈表與單鏈表的插入操做的區別

雙向鏈表由於存在前驅指針和後繼指針因此須要修改的指針多於單鏈表,但指針改動的順序一樣重要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

相關文章
相關標籤/搜索