雙向鏈表插入節點


雙向鏈表插入節點

1、根據實例分析

2、把節點之間的關系看成 是邊的拆除和重建

3、為了方便敘述,給邊標了號

如圖所示是我們要操作的結構體和在雙向鏈表的圖。

現在我們的目的就是在ab節點之間插入x節點。

現在我把這六條線都遍上號:

在插入之前,2,6這兩條邊是存在的,這兩條邊就是:

 

在插入之后,2,6這兩條邊不存在了,存在的邊為4,1,3,5,這四條邊就是:

 

所以要想實現在a,b節點中插入x節點,也就是實現

 

 

在這個圖中,1和6是同一條邊,都是a->next,3和2是同一條邊,都是b->pre.

 

現在我們是通過p指針在這個雙休鏈表中找到了b節點,也就是p==b的,並且我們有一個x節點是待插入的。

在這種情況下,我們找a節點就只能通過p節點,p->pre就代表a。

顯然2這條邊就是p->pre,所以我們要想找到a節點,就必須有2這條邊。

而1,4兩條邊的操作都和a節點有關。

所以我們要想操作1,4兩條邊,就必須有a節點,也就是2這條邊。

5這條邊的插入順序很自由,因為我們的x節點和p節點都是已知的。

所以我們的一個插入順序為這樣:

1、先拆第6條邊,接上第一條邊:

2、然后接上第4條邊:

3、然后接上第5條邊:

4、最后拆除第二條邊接上第三條邊:

 

 大工告成。

說一句,這個循序不是唯一的,比如說5這條邊我可以在任意時候插入。

並且如果p節點現在不是指向b,而是指向a,那么一切又都變化了,所以重在理解吧。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM