資料結構 線性表

2021-09-12 13:33:50 字數 1118 閱讀 5229

2.1. 線性表的型別與定義

線性表是n個資料元素的有限序列,由若干個資料項組成資料元素,資料元素稱為記錄,含有大量記錄的線性表叫做檔案

2.2. 線性表順序表示和實現

#define list_init_size 100//初始空間分配量

#define listincrement 10//增量

typedef structsqlist;

status intilist_sq(sqlist & l)//初始化線性表

//一般出於實際出發,會有初始資料//

//假設環境為int資料型別,該段**沒有考慮資料溢位的情況,只是方便初始化,也可用函式呼叫,使用插入新資料的函式來進行初始資料載入

int n;

printf("請輸入要輸入資料數量");

scanf_s("%d", &n);

printf("請輸入資料");

for (int i = 0; i < n; i++)

//插入乙個新元素到指定位置上方

status listinsert_sq(sqlist & l, int i, elemtype e)

q = &(l.elem[i - 1]);//q為插入的位置

for (p = &(l.elem[l.length - 1]); p >= q; --p)

//從q位置後整體向後移

*q = e;//賦值q

++l.length;//表長加一

return status(ok);

}status listdelete_sq(sqlist & l, int i, elemtype & e)

;//從p開始後面的值賦值給前面的

--l.length;//減短表長

return status(ok);

}//刪除某一節點

關於插入元素的與刪除元素的演算法複雜度問題

2.3. 線性表的鏈式表示和實現

線性鍊錶

迴圈鍊錶

雙向鍊錶

2.4. 一元多項式的表示及相加

資料結構(線性表)

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