陣列和鍊錶是兩種基本的資料結構,他們在記憶體儲存上的表現不一樣,所以也有各自的特點。
鍊錶中各結點在記憶體中的存放位置是任意的。
(1)陣列的元素個數是固定的,而組成鍊錶的結點個數可按需要增減;
(2)陣列元素的存諸單元在陣列定義時分配,鍊錶結點的儲存單元在程式執行時動態向系統申請:
(3)陣列中的元素順序關係由元素在陣列中的位置(即下標)確定,鍊錶中的結點順序關係由結點所包含的指標來體現。
(4)對於不是固定長度的列表,用可能最大長度的陣列來描述,會浪費許多記憶體空間。
(5)對於元素的插人、刪除操作非常頻繁的列表處理場合,用陣列表示列表也是不適宜的。若用鍊錶實現,會使程式結構清晰,處理的方法也較為簡便。
例如:在乙個列表中間要插人乙個新元素,如用陣列表示列表,為完成插人工作,插人處之後的全部元素必須向後移動乙個位置空出的位置用於儲存新元素。
對於在乙個列表中刪除乙個元素情況,為保持陣列中元素相對位置連續遞增,刪除處之後的元素都得向前移乙個位置。如用鍊錶實現列表.鍊錶結點的插人或刪除操作不再需要移動結點,只需改變相關的結點中的後繼結點指標的值即可,與結點的實際儲存位置無關。
陣列與鍊錶的優缺點和區別
1.陣列 陣列是將元素在記憶體中連續存放,由於每個元素占用記憶體相同,可以通過下標迅速訪問陣列中任何元素。但是如果要 在陣列中增加乙個元素,需要移動大量元素,在記憶體中空出一 個元素的空間,然後將要增加的元素放在其中。同樣的 道理,如果想刪除乙個元素,同樣需要移動大量元素去填掉被移動的元素。如果應用...
陣列和鍊錶的區別及優缺點
陣列 存放記憶體位址必須連續的.查詢的時候很方便,可以通過陣列下標獲取資料 新增刪除很不方便,如果插入乙個元素,必須這個元素後面的元素都往後移乙個記憶體位址 刪除,所有後面元素都往前移動乙個記憶體位址 鍊錶 存放記憶體位址可以不連續,存放方式是通過元素中的指標,來尋找下乙個元素.這種結構新增刪除元素...
陣列和鍊錶的優缺點
array與list,使指資料結構概念上的陣列與鍊錶的優缺點吧.如果指的是array類 或介面 與list介面的優缺點的話,就不好理解了.陣列,在記憶體上給出了連續的空間.鍊錶,記憶體位址上可以是不連續的,每個鍊錶的節點包括原?吹哪詿婧拖亂桓黿詰愕男畔?單向的乙個,雙向鍊錶的話,會有兩個 陣列優於鍊...