資料結構(二) 線性表

2021-04-13 22:50:16 字數 1069 閱讀 1050

線性表是最簡單最常用的資料結構,是一種典型的線性儲存結構。

定義: 線性表是由n(n>=0)個資料元素(結點)a1、a

2、......、an

組成的有限序列。n為表的長度。當n=0,為    空表;n>0時,為(a1,a

2,......,an

)。邏輯特徵:非空的線性表只有乙個頭結點,也只有乙個終結點,頭結點只有乙個直接後繼結點,而沒有直接前趨結點,終結點只有乙個直接前趨結點,而沒有直接後繼結點,其餘的內部結點只有乙個直接前趨結點和乙個直接後繼結點。

常見的基本運算:(假定線性表為l)

1。initlist(l);

構造乙個空的線性表,即初始化;

2。listlength(l);

求線性表的長度,即結點個數;

3。getnode(l,i);

取得線性表l上第i個結點,要求1〈=i<=listlength(l);

4。locatenode(l,x);

在l中找第乙個值為x的結點,並返回其位置;若沒有,則返回null表示失敗;

5。insertlist(l,x,i);

在l中的第i個位置插入值為x的新結點,之後表的長度變長(為l+1)要求1<=i<=n;

6。deletelist(l,i);

刪除表l中的第i個結點,之後表的長度變短(為l-1)要求1<=i<=n。

線性表按儲存結構又分為:

順序儲存結構(順序表)

鏈式儲存結構(鍊錶):單鏈表

迴圈鍊錶

雙鏈表一:順序儲存結構:

#define listsize 100

typedef int datatype;  

typedef struct taglist

seqlist;

在順序表中,每個結點a

i的儲存位址是這個結點在表中位置i的線性函式。

線性表是一種隨機訪問結構。

基本運算:

1.插入:

void insertlist(seqlist *l, datatype x, int i)

l->data[i-1]=x;

l->length++; }

資料結構實驗二 線性表

一 實驗目的 鞏固線性表的資料結構,學會線性表的應用。1.回顧線性表的邏輯結構,線性表的物理儲存結構和常見操作。2.學習運用線性表的知識來解決實際問題。3.進一步鞏固程式除錯方法。4.進一步鞏固模板程式設計。二 實驗內容 1.建立乙個n個學生成績的順序表,對錶進行插入 刪除 查詢等操作。分別輸出結果...

ZJU資料結構 二 線性表

線性表 由同型別資料元素構成有序序列的線性結構 表中元素個數稱為線性表的長度線性表沒有元素時,稱為空表表起始位置稱為表頭,表結束為止稱為表尾型別名稱 線性表 list 資料物件集 線性表是n 0 個元素構成的有序序列 a1,a2,an 操作集 線性表l list,整數i表示位置,元素x elemen...

資料結構複習二 線性表

寫在前面 考完離散就剩兩天覆習資料結構,還有七章,我可能要沒了 衝衝衝!定義是 由n 0 個資料特性相同的元素構成的有限序列n 0時為空表 非空線性結構的特點 1 第乙個 元素唯一 2 最後乙個 元素唯一 3 除第乙個之外,資料結構中的每個資料元素均只有乙個前驅 4 除最後乙個之外,每個資料元素均只...