資料結構 線性表

2021-10-04 02:19:33 字數 985 閱讀 9838

線性表(linear list)是由若干資料元素組成的有限序列。該序列中所有結點具有相同的資料型別。資料元素的個數稱線性表的長度。長度為0的線性表:空線性表。長的部位0的線性表:非空線性表。

設線性表l的元素以此為a1,a2,…,an,則記作l=(a1,a2,…,an)。a1是線性表的首結點,an是線性表的尾結點。a1,a2,…ai-1都是ai(2≦i≦n)的前驅,其中ai-1是ai的直接前驅;ai+1,ai+2,…an都是ai(1≦i ≦n-1)的後繼,其中ai+1是ai的直接後繼。

線性表的抽象資料型別定義:

adt list

資料關係:r =

基本操作:

initlist( &l )

構造乙個空的線性表l;

listlength( l )

初始條件:線性表l已存在;

操作結果:返回線性表的長度;

getelem( l, i, &e )

初始條件:線性表l已存在,1≦i≦listlength(l);

操作結果:用e返回l中第i個資料元素的值;

listinsert (& l, i, e )

初始條件:線性表l已存在,1≦i≦listlength(l) ;

listdelete(&l,i,&e)

初始條件:線性表l已存在,1≦i≦listlength(l) ;

操作結果:刪除線性表l中的第i個位置的元素,用e返回其值;

listempty(l)

初始條件:線性表l已存在;

操作結果:若l為空表,則返回true,否則返回false;

listclear(&l)

初始條件:線性表l已存在;

操作結果:將線性表l置為空表;

listlocate(l,e)

初始條件:線性表l已存在;

操作結果:返回線性表l中元素e的位置;

…} adt list

下一步詳細的介紹線性表的型別以及有關演算法的實現。

資料結構(線性表)

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