一、迴圈鍊錶
迴圈鍊錶是與單鏈表一樣,是一種鏈式的儲存結構,所不同的是,迴圈鍊錶的最後乙個結點的指標是指向該迴圈鍊錶的第乙個結點或者表頭結點,從而構成乙個環形的鏈。
迴圈鍊錶的運算與單鏈表的運算基本一致。所不同的有以下幾點:
1、在建立乙個迴圈鍊錶時,必須使其最後乙個結點的指標指向表頭結點,而不是象單鏈表那樣置為null。此種情況還使用於在最後乙個結點後插入乙個新的結點。
2、在判斷是否到表尾時,是判斷該結點鏈域的值是否是表頭結點,當鏈域值等於表頭指標時,說明已到表尾。而非象單鏈表那樣判斷鏈域值是否為null。
二、雙向鍊錶
雙向鍊錶其實是單鏈表的改進。
當我們對單鏈表進行操作時,有時你要對某個結點的直接前驅進行操作時,又必須從表頭開始查詢。這是由單鏈表結點的結構所限制的。因為單鏈表每個結點只有乙個儲存直接後繼結點位址的鏈域,那麼能不能定義乙個既有儲存直接後繼結點位址的鏈域,又有儲存直接前驅結點位址的鏈域的這樣乙個雙鏈域結點結構呢?這就是雙向鍊錶。
在雙向鍊錶中,結點除含有資料域外,還有兩個鏈域,乙個儲存直接後繼結點位址,一般稱之為右鏈域;乙個儲存直接前驅結點位址,一般稱之為左鏈域。在c語言中雙向鍊錶結點型別可以定義為:
typedef struct node
jd;當然,也可以把乙個雙向鍊錶構建成乙個雙向迴圈鍊錶。
雙向鍊錶與單向鍊錶一樣,也有三種基本運算:查詢、插入和刪除。
C語言之鍊錶
鍊錶的觀念 鍊錶是一種物理儲存上非連續,資料元素的邏輯順序通過鍊錶中的指標鏈結次序,實現的一種線性儲存結構。特點 鍊錶由一系列節點 鍊錶中每乙個元素就稱為節點 組成,節點在執行時動態生成 malloc 每個節點包括兩部分 乙個是儲存資料元素的資料域 乙個是儲存下乙個節點位址的指標域 定義乙個鍊錶 t...
c語言 鍊錶 C語言之鍊錶入門
鍊錶三要素 1 頭指標 head 是用來說明鍊錶開始了,頭指標就代表鍊錶本身 所以以後要訪問鍊錶,就要訪問頭指標 2 結點 node 鍊錶中每乙個結構體變數 3 尾指標 用來說明鍊錶的結束 它是乙個空指標,null include includetypedef struct stud 定義了乙個結構...
C語言 之鍊錶操作
常見資料結構有 表棧 佇列樹鍊錶相對於陣列有很多優點,現在總結一下鍊錶的常用操作。1.單鏈表新增節點 include include includestruct list node typedef struct list node list one list one head null 定義乙個全域...