資料結構 第二章 線性表

2021-09-27 08:51:24 字數 1411 閱讀 2034

線性表

順序儲存

鏈式儲存

順序表單鍊錶

雙鏈表迴圈鍊錶

靜態鍊錶

陣列指標實現

借助陣列實現

定義

線性表是具有相同資料型別的n(n>=0)個資料元素的有限序列,其中n為表長,當n=0時該線性表是乙個空表。

特點

1)個數有限

2)表中元素具有邏輯上的順序性。

3)表中元素都是資料元素,每個元素都是單個元素

4)表中元素的資料型別都相同

5)表中元素具有抽象性(僅考慮間的邏輯關係)

注:線性表邏輯結構,順序表和煉表是指儲存結構。

定義:線性表的順序儲存

特點:表中元素的邏輯順序與其物理順序相同。

單鏈表定義:線性表的鏈式儲存(單向,有去無回)

優點:解決順序表需要大量連續儲存空間的缺點。

缺點:附加指標域,浪費儲存空間。查詢浪費時間。

雙鏈表:雙向,可去可回

優點,因為可返回查詢前驅,插入、刪除結點時間複雜度僅為o(1),

迴圈鏈單鏈表

單鏈表+尾指頭

迴圈雙鏈表

雙鏈表+頭尾互指

就是用陣列表示鍊錶。struct 內兩個元素,乙個儲存資料元素,乙個儲存下乙個元素的陣列下標。以next==-1表示結束標誌。

1.訪問方式

順序表可以順序儲存,也可以隨機儲存。

鍊錶只能從表頭順序訪問元素

2.邏輯結構與物理結構

順序儲存,邏輯上相鄰的其對應的物理儲存位置也能相鄰。

鏈式儲存,邏輯上相鄰的元素,物理位置不一定相鄰。

3.查詢、刪除和刪除操作

順序錶鏈表

查詢按值查詢

無序o(n)

o(n)

有序o(log2n)

o(n)

按序號查詢

o(1)

o(n)

刪除、插入

平均移動半個表長的元素

只修改相關的結點的指標域。(但儲存空間代價大)

4.空間分配

順序儲存

在靜態儲存分配情況下,儲存空間裝滿不能擴充,預先分配過大會有大量閒置,分配過小會造成溢位

在動態儲存分配雖然儲存空間可以擴充,但需要移動大量元素,操作效率低,而且若沒有連續的大塊儲存空間,會導致分配失敗。

鍊錶的結點空間只在需要時申請分配,操作靈活高效。

演算法題倒都不是很難,看看,接受一下思想就可以,有個別的想法還是挺巧妙的,但是不難理解。

資料結構 第二章 線性表

線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...

資料結構 第二章 線性表

資料結構 第二章 線性表 模板 引數化的多型 引數化多型性 講程式所處理的物件型別引數化,使一段 可用於處理多種不同型別的物件 採用模板程式設計 提供 共享機制 邏輯功能相同,資料型別不同 定義格式 template 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...

資料結構第二章 線性表

線性表的定義 線性表是具有相同特性的資料元素的乙個有限序列。線性表的特性 1 有窮性 乙個線性表中的元素個數是有限的。2 一致性 乙個線性表中的所有元素的性質相同。從實現的角度看,所有元素具有相同的資料型別。3 序列性 線性表的順序儲存結構 線性表的順序儲存結構簡稱為順序表。順序表的基本運算 1 初...