線性表最簡單也是最常用的一種資料結構,它的特點是,在資料元素的非空有限集中 ,(1)存在唯一乙個被稱為「第乙個」的資料元素,存在唯一乙個被稱為「最後乙個」的資料元素。(2)除了第乙個資料元素外,集合中的其他資料元素都有乙個直接前驅,除了最後乙個元素外,集合中的其他資料元素都有乙個直接後繼;
線性表可分為順序線性表和鏈式線性表,它們各有優缺點,順序線性表中的資料元素之間在邏輯上相鄰也在無理數相鄰,順序線性表的順序儲存結構決定了它的隨機訪問的特點,但是如果要對順序進行插入或者刪除特定的資料元素,則可能要進行大量的修改工作,但是鏈式線性表則克服了這種弊端,在進行刪除或插入資料元素時可能比較方便,但是要提取乙個資料元素則需要遍歷線性表,所以這兩種線性表在使用時應當根據需要並結合這兩種線性表的特點進行選擇。
順序線性表的表示和實現:
#include #include #include #include #define ok 1
#define error -1
#define init_size 100
#define list_size 10
#define true 1
#define false 0
using namespace std;
typedef int elemtype ;
typedef int status ;
typedef struct sqlist;
status initlist(sqlist &l)
status destroylist(sqlist &l)
status clearlist(sqlist &l)
bool listempty(sqlist &l)
int listlength(sqlist &l)
int locateelem(sqlist &l , elemtype e )
status listinsert(sqlist &l ,int i ,elemtype e)
*q = e ;
++l.len ;
return ok ;
}void mergelist(sqlist &la ,sqlist &lb ,sqlist &lc)
else
}// 下面兩個只執行乙個;
// 將la或lb中剩餘的元素也按非遞減有序插入;
while(i<=lalen)
while(j<=lblen)
}//未驗證
資料結構(線性表)
1.試寫一演算法,在無頭結點的動態單鏈表上實現線性表操作insert l,i,b 並和在帶頭結點的動態單鏈表上實現相同操作的演算法進行比較。status insert linklist l,int i,int b 在無頭結點鍊錶l的第 i個元素之前插入元素 belse insert 2.已知線性表中...
資料結構 線性表
參考 一 線性表 順序表 單鏈表 迴圈鍊錶 雙鏈表 順序表 1.表的初始化 void initlist seqlist l 2.求表長 int listlength seqlist l 3.取表中第i個結點 datatype getnode l,i 4.查詢值為x的結點 5.插入 具體演算法描述 v...
資料結構 線性表
線性表是最基礎的一種資料結構,這樣的資料物件包含的資料元素具有一對一的前驅後繼關係。按其邏輯儲存方式的不同可分為兩類線性表 順序表和鏈式表。其中鏈式表又可分為線性鍊錶 迴圈鍊錶和雙向鍊錶。下面分別介紹下這幾種線性表的資料結構 1.順序表 typedef struct sqlist 插入演算法 i到n...