數據結構概念-單向鏈表與雙向鏈表區別


單向鏈表:

由兩部分組成:數據域和指針域,每個結點都有一個指針,每個節點指針的指向都是指向自身結點的下一個結點,最后一個結點的head指向為null,對單鏈表的操作只能從一端開始,如果需要查找鏈表中的某一個結點,則需要從頭開始進行遍歷

雙向鏈表:

對於雙向鏈表來說,它的每個節點要指向“直接前驅”和“直接后繼”,所以節點類需要含有兩個指針域。指向直接前驅的指針使用pre表示,指向后繼的指針使用next表示。雙向鏈表是在單向鏈表基礎上的一個改進,每個節點指向其直接前驅和直接后繼節點。因此,從雙向鏈表的任意位置開始,都能訪問所有的節點

雙向鏈表從節點的結構上可以看出,雙向鏈表的所需的存儲空間大於單向鏈表。同時,對於插入和刪除等操作來說,雙向鏈表的節點操作更加復雜,涉及到節點的前后兩個節點。

 代碼實現可見:https://zhuanlan.zhihu.com/p/109926262

 

 

單向鏈表

雙向鏈表

查找

只能找到后繼

找到前驅和后繼

遍歷

只能從頭到尾遍歷,但遍歷時候不會死循環

可進可退,但遍歷復雜

增刪節點

增加刪除節點簡單

增加刪除節點復雜

內存

相比較小

多分配一個前驅指針存儲空間

適用場合

節點的增加刪除頻繁,內存較小場合

需要雙向查找節點值的場合


免責聲明!

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



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