補充:資料結構線性表的優缺點
優點:①用陣列儲存資料元素,操作方法簡單,容易實現;
②無需為表示結點之間的邏輯關係增加額外的儲存開銷;
③儲存密度高;
④可按照元素位序隨機儲存結點;
缺點:①插入或刪除操作不方便,除過表尾的位置外,在表的其他位置上進行插入或刪除操作都必須移動大量的結點,效率比較低;
②順序表要求佔連續的儲存空間,因此需要儲存空間要預先進行靜態分配。因此表長較大時,難以預定合適的儲存規模。
一、定義
採用鏈式結構儲存的線性表稱為鍊錶。從其實現角度看,可將鍊錶分為靜態鍊錶和動態鍊錶,從鏈結方式可分為單鏈表,雙向鍊錶和迴圈鍊錶。
二、單鏈表
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...