1.線性表的定義
線性表是具有相同特性元素的乙個有限序列。
所含元素個數=線性表長度。
2.線性表的邏輯特性
只有乙個表頭元素,乙個表尾元素,表頭元素沒有前驅,表尾元素沒有後繼,其他元素只有乙個直接前驅,乙個直接後繼。
3.線性表的儲存結構
(1)順序儲存結構(順序表)
隨機訪問特性
需占用連續的儲存空間
做插入操作時要移動多個元素
(2)鏈式儲存結構(鍊錶)
不支援隨機訪問
結點的儲存空間利用率較順序表稍低一些(每個結點需劃出一部分空間來儲存指向下乙個結點位置的指標)
支援儲存空間的動態分配
插入操作無需移動元素
鍊錶的五種形式:
1)單鏈表
①帶頭結點的單鏈表:頭結點不儲存資訊(僅儲存一些描述鍊錶屬性的資訊,如表長),只是作為標誌。頭指標head指向頭結點,始終不等於null,head->next等於null時,鍊錶為空。
②不帶頭結點的單鏈表:所有結點都儲存資訊。頭指標head指向開始結點,當head等於null時,鍊錶為空。
結點定義:
typedef struct lnode
lnode; //定義單鏈表結點型別
2)雙鏈表
雙鏈表能夠由終端結點反向走到開始結點。就是在單鏈表結點上新增了乙個指標域,指向當前結點的前驅。
結點定義:
typedef struct dlnode
dlnode;
3)迴圈單鏈表
將單鏈表的最後乙個指標域(空指標)指向鍊錶的第乙個結點。
4)迴圈雙鏈表
將雙鏈表終端結點的next指標指向鍊錶中的第乙個結點,將鍊錶中第乙個結點的prior指標指向終端結點。
以下四句中任意一句為真,即可判斷迴圈雙鏈表為空
head->next==head;
head->prior==head;
head->next==head && head->prior==head;
head->next==head || head->prior==head;
5)靜態鍊錶
一般鍊錶結點空間來自於整個記憶體,靜態鍊錶則來自於乙個結構體陣列。
考研資料結構 線性表
線性表是具有相同特徵資料元素的乙個有限序列。元素個數叫做線性表的長度,n n 0 表示,n 0 空表 只有乙個表頭元素,只有乙個表尾元素。表頭無前驅,表尾無後繼,除表頭和表尾外,其他元素只有乙個直接前驅,也只有乙個直接後繼。順序儲存結構 順序表 和鏈式儲存結構 鍊錶 兩種。順序表 連續儲存 順序儲存...
考研資料結構筆記 線性表概述
1.1 線性表的定義 線性表是具有相同特性的資料元素的乙個有限序列。該序列中所含元素的個數叫做線性表的長度。1.2 線性表的邏輯特性 只有乙個表頭元素,只有乙個表尾元素,表頭元素沒有前驅,表尾元素沒有後繼,除表頭和表尾元素元素之外,其他元素只有乙個直接前驅,也只有乙個直接後繼。1.3 線性表的儲存結...
考研資料結構 線性表 棧
1.棧是一種線性表,主要特點就是只允許在一端進行插入或刪除操作的線性表。2.棧頂 top 線性表允許進行插入和刪除的一端 棧底 bottom 是固定的,不允許進行插入和刪除的一端 採用順序儲存的棧被稱為 順序棧 通常順序儲存結構由乙個 一維陣列 和乙個記錄 棧頂 元素位置的變數組成。1.結構定義 d...