資料結構線性表2 鍊錶

2021-08-28 23:43:46 字數 1655 閱讀 4436

補充:資料結構線性表的優缺點

優點:①用陣列儲存資料元素,操作方法簡單,容易實現;

②無需為表示結點之間的邏輯關係增加額外的儲存開銷;

③儲存密度高;

④可按照元素位序隨機儲存結點;

缺點:①插入或刪除操作不方便,除過表尾的位置外,在表的其他位置上進行插入或刪除操作都必須移動大量的結點,效率比較低;

②順序表要求佔連續的儲存空間,因此需要儲存空間要預先進行靜態分配。因此表長較大時,難以預定合適的儲存規模。

一、定義

採用鏈式結構儲存的線性表稱為鍊錶。從其實現角度看,可將鍊錶分為靜態鍊錶和動態鍊錶,從鏈結方式可分為單鏈表,雙向鍊錶和迴圈鍊錶。

二、單鏈表

1.定義

頭指標:指向頭結點的指標,方便操作。

2.單鏈表儲存描述結構

三、單鏈表的基本操作

1.建立單鏈表

(1.):

①申請乙個頭結點並置空;②每讀入乙個資料元素申請乙個結點並插在鍊錶的頭結點之後;

(2.)尾插法

①申請頭結點h並置空並且將尾指標r也指向頭結點;

②將新結點插入到r之後並且使r指向新結點 ;

2.求表長

int length_linklist(linklist h)

return j;

3.查詢操作

(1.)按序號查詢

linklist get_linklist(linklist h,int k)

if(j==k) return p;

else return null;

(2.)按值x查詢

linklist *locate(linklist h,elemtype x)

4.插入操作(將新結點*s插入到第i個結點的位置上)

①查詢第i-1個結點,若存在則繼續,否則結束;

②建立新結點;

③將新結點插入,結束

int insert_linklist(linklist h,int i, elemtype x)

else

}

5.刪除操作

①查詢第i-1個結點,若存在,則繼續,否則結束;

②若存在第i個結點則繼續,否則結束;

③刪除第i個結點;

int del_linklist(linklist h,int i)

else

else}}

6.單鏈表的倒置

void reverse(linklist h)

}

資料結構 線性表 鍊錶

在之前了解完什麼是資料結構之後 資料結構 線性表 順序表 陣列 我們再來看看線性結構另外一種實現方式 鍊錶順序表中的鍊錶沒有物理上的連續儲存要求,只需要在儲存資料時通過 鏈 的方式將資料進行連線,而這個 鏈 的實現就是通過指標來實現的。鍊錶的連續儲存方式 對於抽象資料型別來說,每一種資料結構都有自己...

資料結構 線性表(順序表 鍊錶)

線性表 1 線性表是一種邏輯結構,表示一種一對一的邏輯關係,除首節點和尾節點,每個結點只有乙個前驅結點和乙個後繼結點 2 兩種實現的物理結構 順序儲存,鏈式儲存 順序表 1 定義 用一組位址連續的儲存單元,一次儲存線性表中的元素,使得邏輯位置相鄰的元素物理位置也相鄰。2 特點 順序表元素的位序從1開...

資料結構 線性表 鍊錶實現

ifndef chain h define chain h include using namespace std vs平台下自己定義了nullptr null 0 但是在gcc下沒有定義 ifndef nullptr define nullptr 0 endif 鍊錶的節點元素類 template...