資料結構與演算法之美 03鍊錶

2021-10-06 22:29:52 字數 899 閱讀 2825

陣列:

缺點:大小固定

優點:簡單實用,訪問效率更高(可借助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 快取淘汰策略 先進先出策...