順序表與鍊錶的異同

2021-08-28 23:31:12 字數 765 閱讀 2836

1) 建立

① 順序表:靜態建立一塊連續的空間。

② 鍊錶:動態的建立不連續的空間。

2)使用

① 順序表:

優點:按邏輯順序連續儲存,提高空間利用率;

大多數高階語言都有陣列,容易實現;

不需要儲存關係,無需額外空間開銷。

缺點:空間長度固定,需要預先分配足夠大的儲存空間,估計過大,可能會導致順序表後部大量閒置;

預先分配過小,又會造成溢位。

② 鍊錶:

優點:基本沒有空間上的限制,允許線性表的長度有很大的變化,,基本只與記憶體空間大小有關。

缺點: 需要儲存關係,浪費一些空間。

1) 查詢

① 順序表:按元素序號查詢,時間複雜度小。

② 鍊錶:需要迴圈鍊錶訪問,即從乙個節點乙個乙個節點去查詢元素訪問,時間複雜度大。

2)新增、刪除

① 順序表:需要進行較多資料元素的移動,並且改變物理位置,時間複雜度大。

② 鍊錶:物理位置不變,只進行少量的指標指向的變動,時間複雜度小。

1)從儲存空間上:

如果需要分配明確的空間大小,盡量選擇順序表;

如果對線性表的長度與規模難以估計,最好選擇鍊錶。

2)從操作上:

對於經常做查詢訪問元素的操作,用順序表較好;

對於經常做新增、刪除元素的操作,用鍊錶較好。

3)基於環境的考慮:

順序表容易實現,任何高階語言中都有陣列型別;鍊錶的操作是基於指標的,相對來講前者簡單些。

順序表與鍊錶

單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...

順序表與鍊錶

它是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 邏輯上連續,物理上不一定連續 儲存方式 通常是陣列或者鏈式結構 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪...

順序表與鍊錶( )

鍊錶連續的儲存空間儲存任意元素。12 345結構定義 1 size 9 2 length 5 3 data type include include typedef struct vector vector void init vector vector,int size void clear ve...