陣列和鍊錶是兩種基本的資料結構,他們在記憶體儲存上的表現不一樣,所以也有各自的特點。
陣列的特點
鍊錶的特點
各自的優缺點
陣列的優點
隨機訪問性強
查詢速度快
陣列的缺點
插入和刪除效率低
可能浪費記憶體
記憶體空間要求高,必須有足夠的連續記憶體空間。
陣列大小固定,不能動態拓展
鍊錶的優點
插入刪除速度快
記憶體利用率高,不會浪費記憶體
大小沒有固定,拓展很靈活。
鍊錶的缺點
不能隨機查詢,必須從第乙個開始遍歷,查詢效率低
鍊錶與陣列的主要區別
(1)陣列的元素個數是固定的,而組成鍊錶的結點個數可按需要增減;
(2)陣列元素的存諸單元在陣列定義時分配,鍊錶結點的儲存單元在程式執行時動態向系統申請:
(3)陣列中的元素順序關係由元素在陣列中的位置(即下標)確定,鍊錶中的結點順序關係由結點所包含的指標來體現。
(4)對於不是固定長度的列表,用可能最大長度的陣列來描述,會浪費許多記憶體空間。
(5)對於元素的插人、刪除操作非常頻繁的列表處理場合,用陣列表示列表也是不適宜的。若用鍊錶實現,會使程式結構清晰,處理的方法也較為簡便。
例如在乙個列表中間要插人乙個新元素,如用陣列表示列表,為完成插人工作,插人處之後的全部元素必須向後移動乙個位置空出的位置用於儲存新元素。
對於在乙個列表中刪除乙個元素情況,為保持陣列中元素相對位置連續遞增,刪除處之後的元素都得向前移乙個位置。如用鍊錶實現列表.鍊錶結點的插人或刪除操作不再需要移動結點,只需改變相關的結點中的後繼結點指標的值即可,與結點的實際儲存位置無關。
陣列鍊錶區別
從邏輯結構角度來看 a,陣列必須事先定義固定的長度 元素個數 不能適應資料動態地增減的情況。當資料增加時,可能超出原先定義的元素個數 當資料減少時,造成記憶體浪費。b,鍊錶動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入 刪除資料項。陣列中插入 刪除資料項時,需要移動其它資料項 從...
陣列與鍊錶的區別
來自網路 c 語言中可以用陣列處理一組資料型別相同的資料,但不允許動態定義陣列的大小,即在使用陣列之前必須確定陣列的大小。而在實際應用中,使用者使用陣列之前有時無法準確確定陣列的大小,只能將陣列定義成足夠大小,這樣陣列中有些空間可能不被使用,從而造成記憶體空間的浪費。鍊錶是一種常見的資料組織形式,它...
鍊錶和陣列的區別
構建 陣列必須事先定義固定的長度 元素個數 不能適應資料動態地增減的情況。當資料增加時,可能超出原先定義的元素個數 當資料減少時,造成記憶體浪費 陣列可以根據下標直接訪問。鍊錶動態地進行儲存分配,可以適應資料動態地增減的情況,且可以方便地插入 刪除資料項。陣列中插入 刪除資料項時,需要移動其它資料項...