大話資料結構學習 線性表的順序儲存結構

2022-09-24 06:27:12 字數 892 閱讀 4060

#define maxsize 20

typedef int elemtype;

typedef struct

sqlist;

// 初始化順序表

status initlist(sqlist *l)

// 返回順序表的長度

int listlength(sqlist l)

#define ok 1

#define error 0

typedef int status;

// 查詢第i個元素的值

status getelement(sqlist l, int i, elemtype *e)

*e = l.data[i - 1];

return ok;

}//插入操作

status listinsert(sqlist *l, int i, elemtype e)

l->data[i - 1] = e; // 插入

l->length++; // 長度加1

}//刪除操作

status listdelete(sqlist *l, int i, elemtype e)

l->length--; // 長度減1

return ok; // 刪除成功

}

線性表的順序儲存結構的優點:

①無需為表示表中元素之間的邏輯關係而額外的增加儲存空間。

②可以快速的訪問表中任何乙個位置的元素。

線性表的順序儲存結構的缺點:

①插入和刪除操作需要移動大量的元素。

②線性表的長度變化比較大的時候,難以確定儲存空間的容量。

③造成儲存空間的碎片。

線性表的定義:零個或者多個資料元素的有限序列。

資料結構學習 線性表

線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...

資料結構學習 線性表

考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...

資料結構學習 線性表

鏈式儲存用指標表示邏輯結構,可以很方便的表示各種邏輯結構。順序儲存結構中,插入和刪除結點需要大量的移動元素,效率很低。順序儲存結構既可以順序訪問也可以隨機訪問,而鏈式結構只可以順序訪問。對n個元素進行排序的時間複雜最快也要o n 初始有序 通常是o nlog2n 或o n 2 單鏈表只能順序查詢插入...