總結 線性表的幾種儲存方式

2021-08-09 03:30:17 字數 1370 閱讀 6242

一、順序儲存結構:順序表

順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。

其特點是:記憶體中位址連續,支援隨機查詢,按位查詢演算法的時間複雜度為o(1),按值查詢的平均時間效能是o(n),插入刪除操作的平均時間效能是o(n),適用於需要大量訪問元素,而沒有或少量增添或刪除元素的程式。

順序表的優點為:隨機訪問較快,建立簡單。

缺點為:插入和刪除需要移動大量的元素;表的容量難以確定;造成儲存空間的「碎片」等

二、連線儲存結構:鍊錶

1.單鏈表

單鏈表是用一組任意的儲存單元存放線性表的元素。

其特點是:每乙個結點有著資料域和指標域,指標域指向下乙個結點。單鏈表是順序存放,所以查詢時的的平均時間效能是o(n),插入刪除操作的平均時間效能是o(n),試用於需要大量進行增添或刪除元素,而對訪問元素無要求的程式(以下的迴圈鍊錶、雙鏈表同,不一一詳述)

單鏈表的優點為:結構簡單,儲存空間小,能動態儲存分配,插入和刪除也無需移動元素。

缺點為:只能向前訪問節點

2.迴圈鍊錶

迴圈鍊錶是在單鏈表的基礎上,將終端結點的指標域由空指標改為指向頭結點,使得整個單鏈表形成乙個環,即為迴圈鍊錶。

其特點是:基本操作的實現與單鏈表類似,但從鍊錶的任一結點出發,可掃瞄到其他結點,增加了鍊錶操作的靈活性。

缺點為:只能在結點後插入或刪除(若想找到某結點的前驅結點,需要遍歷整個迴圈鍊錶)。

3.雙向鍊錶

雙向鍊錶它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。

其特點是:從雙向鍊錶中的任意乙個結電開始,都可以很方便地訪問它的前驅結點和後繼結點。

雙向鍊錶的優點為:可以在當前結點前面或者後面插入,可以刪除前驅和後繼(包括結點自己)

缺點為:增加刪除結點複雜了些許。

三、其他儲存方法

1.靜態鍊錶

靜態鍊錶是用陣列來表示單鏈表,用陣列元素的下標來模擬單鏈表的指標。

其特點是:每個陣列元素由兩個域組成:data域存放資料元素,next域存放該元素的後繼元素所在的陣列下標,即「模擬鍊錶」

靜態鍊錶的優點為:便於資料的插入和刪除操作,只需要修改游標,不需要移動表中的元素,從而改進了插入和刪除操作需要移動大量元素的缺點

缺點為;沒有解決連續儲存分配帶來的表長難以確定的問題

2.間接定址

間接定址是將陣列和指標結合起來的一種方法。

其特點是:將陣列中儲存資料元素的單元改為儲存指向該元素的指標。

間接定址的優點為:保持了順序表隨機訪問的優點,同時改進了插入和刪除操作的時間效能

缺點為;沒有解決連續儲存分配帶來的表長難以確定的問題

總結:通過這次實驗,發現自己對線性表的各種儲存方式有了全面深入的了解,通過比較也發現了它們的異同,在什麼情況下,用哪種儲存結構,「適合自己的,才是做好的」。

比較總結線性表的幾種主要儲存結果

一 順序表 順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素,通常用一維陣列來實現。順序表是線性表的順序儲存結構,是隨機訪問結構。優點 無需為表示表中元素之間的邏輯關係而增加額外的儲存空間 隨機訪問。缺點 插入和刪除需要移動大量元素 表的容量難以確定 造成儲存空間的 碎片 二 單鏈表 單鏈表...

簡單總結線性表

線性表的順序儲存結構 順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。優點 1 無須為表示表中元素之間的邏輯關係而增加額外的儲存空間 2 可以快速地訪問表中任一位置的元素。缺點 1 插入和刪除操作需要移動大量元素 2 當線性表長度變化較大時,難以確定儲存空間的容量 3 造成儲存空間的 碎片...

實驗三 比較總結線性表的幾種主要儲存結構

一 順序表 1.順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。由於線性表中每個資料元素的型別相同,通常用一維陣列實現,這是與鍊錶的不同之處。用陣列儲存順序表,意味著要分配固定長度的陣列空間,因此,必須確定陣列的長度。2.順序表因為是靜態儲存分配,故有以下缺點 插入和刪除操作需移動大量元素...