陣列和鍊錶的區別

2021-10-07 12:38:29 字數 760 閱讀 6516

陣列和鍊錶的區別

陣列:一、特點

陣列的記憶體空間是連續的,需要提前申請所佔記憶體的大小,所以就會造成記憶體空間的浪費。因為是順序儲存,每個陣列元素都對應乙個陣列下標,所以查詢效率比較高,而對於增刪改的操作,在插入資料時,待插入位置的元素和它後面所有元素都需要向後搬移,刪除資料時,待刪除資料後面的所有元素都要向前搬移,所以它的增刪改比較慢。它的記憶體空間是從棧中分配的。

二、優點

隨機訪問性強,查詢速度快,時間複雜度為o(1)

鍊錶:一、特點

鍊錶是一種上個元素的引用指向下乙個元素的儲存結構,鍊錶通過指標來連線元素與元素。它也是線性表的一種,線性表就是包含順序線性表和鍊錶,順序線性表有陣列實現,在記憶體中有順序排列。而鍊錶不是用順序實現的,它是通過指標實現的。在記憶體中,鍊錶的記憶體空間可以不連續的,它可以將不連續的記憶體聯絡起來,所以允許插入和刪除表任意位置的節點。對於資料查詢比較慢,而對於增刪比較快。

鍊錶也有幾種型別:單向鍊錶、雙向鍊錶、迴圈鍊錶。單向鍊錶包含兩個域,乙個是資訊域,乙個是指標域,資訊域儲存節點資訊,指標域儲存下個節點的位址。最後乙個節點指向空值。雙向鍊錶有兩個鏈結,乙個指向前節點,乙個指向後節點。迴圈鍊錶最後乙個節點和首節點相連。

陣列和鍊錶的區別?

相同點:

兩種結構均可實現資料的順序儲存。

不同點:

鍊錶是鏈式儲存,陣列是順序的儲存結構,鍊錶通過指標將各個元素連線在一起,陣列是吧所有元素按次序依次儲存。鍊錶插入刪除較快,陣列查詢較快。陣列的記憶體空間是連續的,分配在棧中,鍊錶的記憶體空間是不連續的,分配在堆中。

陣列和鍊錶區別

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

陣列和鍊錶的區別

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

陣列和鍊錶的區別

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