陣列和鍊錶的區別

2021-07-31 12:37:22 字數 804 閱讀 7253

陣列優點:

1、陣列記憶體空間占用的較少,而鍊錶節點會附加上一塊或兩塊下乙個節點的資訊,所以占用記憶體較多。但是陣列在建立時就固定了,所以也有可能會因為建立的陣列過大或不足引起記憶體上的問題.。

2、陣列內的資料可隨機訪問,但鍊錶不具備隨機訪問性。陣列在記憶體裡是連續的空間,比如乙個陣列位址從1到

100,且每個元素占用兩個位元組,那麼

1-100

之間的任何乙個偶數都是陣列元素的位址,可以直接訪問。鍊錶在記憶體位址可能是分散的,所以必須通過上一節點中的資訊找能找到下乙個節點。(雙向鍊錶可通過下乙個節點的資訊找到下乙個節點)

3、陣列查詢速度上比鍊錶快。這個也是因為陣列記憶體位址的連續性的問題,查詢方便,切適合隨機查詢。

鏈結表查詢乙個元素時必須順序查詢,乙個乙個依次找到這個元素,所以比較慢。

鍊錶優點:

1、鍊錶的插入與刪除的操作快。如果陣列的中間插入乙個元素,那麼這個元素後的所有元素的記憶體位址都要往後移動,刪除的話同理。只有對資料的最後乙個元素進行插入刪除操作時,才比較快。鍊錶只需要更改有必要更改的節點內的節點資訊就夠了。並不需要更改節點的記憶體位址。

2、鍊錶記憶體位址的利用率高。不管你記憶體裡還有多少空間,如果沒辦法一次性給出陣列所需的要空間,那就會提示記憶體不足,磁碟空間整理的原因之一在這裡。而鍊錶可以是分散的空間位址,可以使用分散的記憶體。

3、鍊錶的擴充套件性比陣列好。因為乙個陣列建立後所占用的空間大小就是固定的。如果滿了就沒法擴充套件,只能新建乙個更大空間的陣列,而鍊錶不是固定的,可以很方便的擴充套件。

陣列和鍊錶區別

談到鍊錶與陣列的區別,可以從幾個不同的角度來談,首先從邏輯結構上說,兩者都是資料結構的一種,但存在區別,陣列是申請的一塊連續的記憶體空間,並且是在編譯階段就要確定空間大小的,同時在執行階段是不允許改變的,所以它不能夠隨著需要的改變而增加或減少空間大小,所以當資料量大的時候,有可能超出了已申請好的陣列...

陣列和鍊錶的區別

陣列與鍊錶的區別 1.基於空間的考慮 陣列的儲存空間是靜態,連續分布的,估計過大造成空間浪費,估計太小又將使空間溢位機會增多。而鍊錶的儲存空間是動態分布的,只要記憶體空間尚有空閒,就不會產生溢位 鍊錶中每個節點除了資料域外,還有指標域,儲存密度小於1 陣列為 儲存空間利用率就越高。2.基於時間的考慮...

陣列和鍊錶的區別

1 陣列的儲存空間是一大片連續的,鍊錶的儲存空間是不定的,每個鍊錶的節點元素都會儲存該節點的資料和下個節點的位址指向。陣列初使化必須制定大小,而鍊錶卻不需要便是這個原因。2 就增刪改查而言,陣列因為位址是連續的,所以陣列的查詢修改很快,但是增刪的時候由於需要移動後面所有的元素反而較慢,對應的鍊錶在查...