線性表是最簡單最常用的資料結構,是一種典型的線性儲存結構。
定義: 線性表是由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 除最後乙個之外,每個資料元素均只...