資料結構考研筆記 線性表

2021-08-22 00:03:36 字數 1167 閱讀 3186

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...