一、順序表
順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素,通常用一維陣列來實現。順序表是線性表的順序儲存結構,是隨機訪問結構。
優點:無需為表示表中元素之間的邏輯關係而增加額外的儲存空間;隨機訪問。
缺點:插入和刪除需要移動大量元素;表的容量難以確定;造成儲存空間的「碎片」。
二、單鏈表
單鏈表是用一組任意的儲存單元存放線性表的元素,元素的邏輯次序和物理次序不一定相同,這組儲存單元可以連續也可以不連續,甚至可以零散分布在記憶體中的任意位置。單鏈表中資料元素之間的邏輯關係用指標表示,單鏈表是順序訪問結構。
優點:刪除和插入不需要移動元素;鍊錶不需要為線性表預分配空間,其中的元素沒有限制。
缺點:指標的結構性開銷占去整個結點的大部分;只能朝乙個方向訪問元素,不能隨機訪問。
三、迴圈鍊錶
迴圈鍊錶是是在單鏈表中,將終端結點的指標域由空指標改為指向頭結點,就使整個單鏈表形成乙個環,通常採用尾指標來標識。
優點:沒有增加任何儲存量,可以從鍊錶中的任一結點出發,增加了鍊錶操作的靈活性。
缺點:迴圈鍊錶沒有明顯的尾端,可能會使迴圈鍊錶的處理操作進入死迴圈。
四、雙鏈表
雙鏈表是在單鏈表的每個結點中再設定乙個指向其前驅結點的指標域,即prior。雙鏈表是一種對稱結構,便於實現各種操作。
優點:可以從鍊錶中的任一結點出發,增加了鍊錶操作的靈活性,且可找到前驅結點。
缺點:每個結點需要儲存前驅指標域,增加了指標的結構性開銷。
五、靜態鍊錶
靜態鍊錶是用陣列來描述單鏈表,用陣列元素的下標來模擬單鏈表的指標(稱為游標)。即data域存放資料元素,next域存放該元素的後繼元素所在的陣列下標。
優點:插入和刪除時,只需修改游標,不需要移動表中的元素。
缺點:沒有解決連續儲存分配帶來的表長難以確定的問題。
六、間接定址
間接定址是將陣列和指標結合起來的一種方法,將陣列中儲存資料元素的單元改為儲存指向該元素的指標。
優點:保持了順序表隨機訪問的優點;改進了插入和刪除操作的時間效能。
缺點:沒有解決連續儲存分配帶來的表長難以確定的問題。
實驗三 比較總結線性表的幾種主要儲存結構
一 順序表 1.順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。由於線性表中每個資料元素的型別相同,通常用一維陣列實現,這是與鍊錶的不同之處。用陣列儲存順序表,意味著要分配固定長度的陣列空間,因此,必須確定陣列的長度。2.順序表因為是靜態儲存分配,故有以下缺點 插入和刪除操作需移動大量元素...
總結 線性表的幾種儲存方式
一 順序儲存結構 順序表 順序表是用一段位址連續的儲存單元依次儲存線性表的資料元素。其特點是 記憶體中位址連續,支援隨機查詢,按位查詢演算法的時間複雜度為o 1 按值查詢的平均時間效能是o n 插入刪除操作的平均時間效能是o n 適用於需要大量訪問元素,而沒有或少量增添或刪除元素的程式。順序表的優點...
簡單總結線性表
線性表的順序儲存結構 順序儲存結構用一段連續的儲存單元依次儲存線性表的資料元素。優點 1 無須為表示表中元素之間的邏輯關係而增加額外的儲存空間 2 可以快速地訪問表中任一位置的元素。缺點 1 插入和刪除操作需要移動大量元素 2 當線性表長度變化較大時,難以確定儲存空間的容量 3 造成儲存空間的 碎片...