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

2021-08-19 19:43:47 字數 1042 閱讀 6111

一、順序表:

1.順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。由於線性表中每個資料元素的型別相同,通常用一維陣列實現,這是與鍊錶的不同之處。用陣列儲存順序表,意味著要分配固定長度的陣列空間,因此,必須確定陣列的長度。

2.順序表因為是靜態儲存分配,故有以下缺點①插入和刪除操作需移動大量元素②表的容量難以確定③造成儲存空間的「碎片」。

3.順序表的優點在於,無需為表示表中元素之間的邏輯關係而增加額外的儲存空間:隨機訪問。

二、單鏈表:

1.單鏈表是用一組任意的儲存單元存放線性表的元素,這組儲存單元是否連續皆可。每個儲存單元在儲存資料元素的同時,還必須儲存其後繼元素所在的位址資訊,這個位址資訊稱為指標,這兩部分組成了資料元素的儲存映像,稱為結點。資料域是data,用來存放資料元素;指標域是next,用來存放該結點的後繼結點的位址。

2.單鏈表的缺點是,鍊錶按位置訪問只能從表頭開始依次向後掃瞄,直到找到那個特定的位置,所需的平均時間為o(n)。

3.單鏈表的優點是,在鍊錶中進行插入和刪除操作不需要移動元素。

三、雙鏈表:雙鏈表對比單鏈表則是在結點部分多了前驅指標域(prior),這樣使得檢索遍歷資料更加靈活。在雙鏈表中,其在指標的修改中要注意其修改的相對順序。順序的前後會改變演算法的執行,所以要特別注意。在定義建構函式時,其也多了關於前驅指標的定義,這裡也是與單鏈表不同之處。

四、靜態鍊錶:

靜態鍊錶是用陣列來表示單鏈表,用陣列元素的下標來模擬單鏈表的指標。其是利用陣列定義,所以屬於靜態儲存分配。對比順序表,其多了乙個模擬指標,對比單鏈表,其又不是動態的儲存分配。但是靜態鍊錶與這兩種都有相像之處。在定義時,需將陣列和其下標都要兼顧,這個是建構函式的要點。它在插入和刪除操作時,只需要修改游標,不需要移動表中元素,從而改進了在順序表中插入和刪除需要移動大量元素的缺點,但它沒有解決連續儲存分配帶來的表長難以確定的問題。

五、間接定址:

間接定址是將陣列和指標結合起來的一種方法,其將陣列中儲存資料元素的單元改為儲存指向該元素的指標。保留了順序表的優點,與順序表不同的地方是,間接定址移動的是指標而不是元素,但它也沒有解決

連續儲存分配帶來的表長難以確定的問題。

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

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

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

一 順序儲存結構 順序表 順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。其特點是 記憶體中位址連續,支援隨機查詢,按位查詢演算法的時間複雜度為o 1 按值查詢的平均時間效能是o n 插入刪除操作的平均時間效能是o n 適用於需要大量訪問元素,而沒有或少量增添或刪除元素的程式。順序表的優點...

簡單總結線性表

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