鏈表
一、什麼是鏈表
鏈表是線性表的一種,同順序表一樣,都是最基礎的線性表。與順序表的區別在於使用了不同存儲結構實現,順序表使用順序存儲結構,而鏈表使用鏈式存儲結構。
鏈表的實現是通過節點,通常節點包含兩個區域,數據域和指針域。數據域用來存儲我們的數據,而指針域用來存儲下一個節點的指針,而節點之間的聯繫也是通過指針域來建立的。假如我們用鏈表存儲下列有序數據:a1,a2,a3,…an。我們已知a1的地址,我們可以通過a1的地址獲取a1,然後獲取a1中的指針域,從而獲取a2的數據,依次類推,遍歷整個鏈表。
上圖爲鏈表的結構體,一整個方塊就是一個節點,一個節點包含數據域(藍色方塊)和指針域(橙色方塊),方塊外的數字表示該節點所在的地址。我們可以看到相鄰節點之間的地址並非連續的,節點與節點之間通過指針域建立連接。
二、鏈表的表示
我們可以構建一個節點的結構體:
typedef int ElemType;