C語言資料結構之線性表 理論

2021-10-02 00:14:56 字數 775 閱讀 4604

1.線性表的定義:

- 存在唯一乙個「第乙個」元素

- 存在唯一乙個「最後乙個」元素

- 除第乙個元素外,每乙個元素都有且只有乙個前驅

- 除最後乙個元素外,每個元素都有且只有乙個後繼

2.線性表的表示與實現:

根據儲存方式的不同,線性表可分為順序表與鏈式表

-順序表:採用陣列形式儲存,元素的位序與儲存下表存在對應關係

-鏈式表:採用鍊錶形式儲存,元素的位序與儲存位置不存在對應關係

順序表與鏈式表的優缺點比較:

-儲存密度(結點資料本身所佔額儲存量和整個結點結構儲存量之比):

鏈式儲存需要額外的指標域,理論上單鏈表形式的鏈式儲存的儲存密度是50%;

所以儲存密度小於順序儲存

-從空間考慮:

順序表需要預先確定儲存容量,容易造成儲存空間的溢位或浪費

鏈式表隨用隨分配,不會出現儲存空間的溢位也沒有儲存空間浪費

-從時間考慮:

查詢:順序表儲存結構與物理結構有關,時間複雜度為 o(1)

鏈式表儲存結構與物理結構無關,時間複雜度為 o(n) 

插入,刪除:

順序表需要將操作元素後的所有元素前移或後移,時間複雜度為 o(n)

鏈式表無需將操作元素後的所有元素前移或後移,時間複雜度為 o(1)

綜上所述:若需要頻繁查詢,則建議使用順序表;若需要頻繁插入刪除,則建議使用單迴圈鍊錶的鏈式表

資料結構 線性表 C語言

include include define maxsize 20 define elemtype int typedef struct sqlist 順序表型別 void createlist sqlist l,elemtype a,int n 由a中的n個元素建立順序表 l length k 設...

C語言資料結構 線性表

今天又是活力滿滿的一天!加油呀!今天開始學習線性表啦!一 何為線性表?線性表就像我們買票排隊一樣,具有線一樣性質的結構。線性表的官方定義 由零個或多個資料元素組成的有限序列。二 線性表的特點 元素之間有先來後到,具有一定的順序。若元素存在多個,會牽扯到前驅後繼的概念 則第乙個元素無前驅,最後乙個元素...

資料結構之線性表實現(C語言)

1.順序表的實現 include include 定義陣列最大長度 define maxnum 100 定義元素型別 typedef int elementtype 定義線性表結構 struct lnode typedef struct lnode list 建立空表 list makeempty ...