陣列:缺點:大小固定
優點:簡單實用,訪問效率更高(可借助cpu快取機制)
鍊錶:缺點:記憶體不連續,訪問效率不高。對記憶體使用苛刻,當鍊表發生頻繁插入、刪除操作時,會導致頻繁的記憶體申請和釋放。
優點:鍊錶本身沒有大小的限制,天然地支援動態擴容
1、在刪除給定指標指向的結點時,我們已經找到了要刪除的結點,但是刪除某個節點q需要知道其前驅結點,而單向鍊錶並不支援直接獲取前驅結點。2、所以,為了找到前驅結點,我們還是要從頭開始遍歷結點。針對雙向鍊錶來說,上述情況就比較有優勢了。
3、雖說雙向鍊錶比單向鍊錶實現起來空間複雜度更高,但是其刪除節點時的簡便性確凸顯出來。
4、實際工程開發中,要具體考量時間換空間,還是空間換時間的方法!
插入結點時,注意操作的順序刪除鍊錶結點時,也一定記得手動釋放記憶體空間
針對鍊錶的插入、刪除操作,需要對插入第乙個結點和刪除最後乙個結點的情況進行特殊處理。可通過插入哨兵結點,統一所有操作。
如果鍊錶為空時,**是否能正常工作?如果鍊錶只包含乙個結點時,**是否能正常工作?
如果鍊錶只包含兩個結點時,**是否能正常工作?
**邏輯在處理頭結點和尾結點的時候,是否能正常工作?
單鏈表反轉鍊錶中環的檢測
兩個有序的鍊錶合併
刪除鍊錶倒數第 n 個結點
求鍊錶的中間結點
資料結構與演算法之美 鍊錶
如何優雅的寫出鍊錶 6大學習技巧 一 理解指標或引用的含義1.含義 將某個變數 物件 賦值給指標 引用 實際上就是就是將這個變數 物件 的位址賦值給指標 引用 2.示例 p next q 表示p節點的後繼指標儲存了q節點的記憶體位址。p next p next next 表示p節點的後繼指標儲存了p...
資料結構與演算法之美 鍊錶
1.如何實現lru快取淘汰演算法 答 回答這個問題之前,我們首先了解一下什麼是快取 2.鍊錶的三種形式 單鏈表 雙向鍊錶 迴圈鍊錶 簡介一下單鏈表 頭節點用於記錄基位址,有了它我們就可以遍歷整條鍊錶,而尾節點特殊地方不是指向下乙個節點,而是指向乙個空位址。鍊錶因為不是乙個連續的位址,所以不需要考慮連...
《資料結構與演算法之美》筆記 鍊錶
typedef struct node node 陣列和鍊錶都是線性表。陣列必須是連續空間,而鍊錶無所謂。鍊錶 單鏈表 迴圈鍊錶 雙向鍊錶 陣列 插入 刪除的時間複雜度是o n 隨機訪問的時間複雜度是o 1 鍊錶 插入 刪除的時間複雜度是o 1 隨機訪問的時間複雜端是o n 快取淘汰策略 先進先出策...