...
...
雙向循環鏈表是基於雙向鏈表的基礎上實現的,和雙向鏈表的操作差不多,唯一的區別就是它是個循環的鏈表,通過每個節點的兩個指針把它們扣在一起組成一個環狀。所以呢,每個節點都有前驅節點和后繼節點(包括頭節點和尾節點)這是和雙向鏈表不同的地方。我們看下雙向循環鏈表的示意圖(我在網上找了張圖片,自己畫的實在 ...
1.查找rear指針為O(1) 那么開始節點就為rear->next->next,也是O(1) //大家可以想象從最后一個結點開始有什么好處2.head->next ==head ...
雙向鏈表簡介 單向鏈表只有一個方向,結點只有一個后繼指針 next 指向后面的結點。而雙向鏈表,顧名思義,它支持兩個方向,每個結點不止有一個后繼指針 next 指向后面的結點,還有一個前驅指針 prev 指向前面的結點。 從上圖中可以看出來,雙向鏈表需要額外的兩個空間來存儲后繼結點和前驅 ...
雙向鏈表和雙向循環鏈表 和單向鏈表相比,多了一個前驅結點。如果他為空,那么next和prior都指向自己。而對於雙循環鏈表,只需要最后一個元素的next指向head->next,head->next的prior指向最后一個節點即可。 插入操作 新節點s插入鏈表,s-> ...
雙向鏈表和單向鏈表也是有很多相似的地方的,聽名字可以猜到,每個節點都包含兩個指針,一個指針指向上一個節點,一個指針指向下一個節點。這里有兩個特殊的地方,第一就是頭節點的一個指針指向NULL空指針(沒有前驅節點),第二就是尾節點的一個指針指向NULL指針(沒有后繼節點 ...
單鏈表的初始化,創建,插入,刪除和反轉 運行結果: 注意:在VS2015環境下,需要輸入三個ctrl+z才能結束while中的scanf;在VC++6.0中一個ctrl+z就可以結束。 ——如有不對的地方,非常歡迎給予指導! ——【感謝】部分資料來源於http ...
單鏈表的缺點是只能往前,不能后退,雖然有循環單鏈表,但后退的成本還是很高的,需要跑一圈。在這個時候呢,雙向鏈表就應運而生了,再加上循環即雙向循環 鏈表就更加不錯了。所謂雙向鏈表只不過是添加了一個指向前驅結點的指針,雙向循環鏈表是將最后一個結點的后繼指針指向頭結點,這在遍歷時很關鍵。 程序 ...