*迴圈鍊錶和單鏈表的區別在於尾節點,單鏈表的尾節點指向空位址。迴圈鍊錶比較適合處理環形結構的資料。
*雙向鍊錶:需要兩個空間來儲存後繼結點和前驅結點的位址。如果儲存相同多的資料,雙向鍊錶比單鏈表占用更多的記憶體空間。
思路:維護乙個有序單鏈表,靠近鍊錶尾部的節點是越早之前訪問的。當有乙個新資料被訪問時,我們從煉表頭開始遍歷鍊錶。
1.如果此資料之前已經被快取在鍊錶裡面了,我們遍歷這個資料對應的節點並將其從原來的位置刪除,然後插入到鍊錶的頭部。
2.如果此資料沒有在快取鏈中,又可以分為以下兩種情況:
警惕指標丟失和記憶體洩露:對於c語言而言,刪除鍊錶節點的時候,一定要記得手動釋放記憶體空間。
利用哨兵簡化實現難度:針對鍊錶的插入、刪除操作,需要對插入第乙個結點和刪除最後乙個結點的情況進行特殊裡。有哨兵結點的鍊錶叫做帶頭鍊錶。沒有哨兵結點的鍊錶叫作不帶頭鍊錶。
重點留意邊界條件處理
鍊錶為空,**是否能正常工作 2.鍊錶只有乙個結點,**能否正常工作3.鍊錶只有兩個結點是,**能否正常工作
4.**邏輯在處理頭結點和尾節點的時候,是否能正常工作。
//遞迴方式實現鍊錶反轉
node * reverselist(list head)
else
}
鍊錶相關知識點
示例程式 include include include 普通結構體 typedef struct stu 結點結構體 typedef struct node int main 執行結果 指標變數佔4個位元組!32位系統中 指標變數根據 基型別 的不同有 int 型,float 型,double 型...
單鏈表相關操作和相關知識點
熟悉什麼是鍊錶,鍊錶的分類?熟悉鍊錶帶頭結點和不帶頭結點的區別?後面解釋 完成單鏈表的以下基本操作 typedef int sdatatype 鍊錶的節點 typedef struct slistnode node,pnode 鍊錶的結構,給乙個頭指標儲存鍊錶第乙個節點的位址 typedef str...
單鏈表 雙鏈表和環形鍊錶 相關知識點)
資料結構中有一種叫鍊錶的,它不像陣列有空間限制,可以無限 記憶體範圍內 新增元素 1.單鏈表 單鏈表的儲存如下 1 鍊錶是以結點來乙個個儲存的鏈式儲存 2 他有兩個域乙個資料域用來儲存資料,還有乙個指標域用來儲存下乙個結點的儲存的位置 3 鍊錶有帶有頭節點的鍊錶,也有不帶頭結點的鍊錶 帶頭節點的單鏈...