連結串列和陣列一樣是一種資料結構。
陣列是將元素在記憶體中連續存放,由於每個元素佔用記憶體相同,所以可以通過下標迅速訪問陣列中任何元素。但是如果要在陣列中增加一個元素,需要移動大量元素,在記憶體中空出一個元素的空間,然後將要增加的元素放在其中。同樣的道理,如果想刪除一個元素,同樣需要移動大量元素去填掉被移動的元素。
連結串列恰好相反,連結串列中的元素在記憶體中不是順序儲存的,而是通過存在元素中的指標聯絡到一起。如:上一個元素有個指標指到下一個元素,以此類推,直到最後一個元素。如果要訪問連結串列中一個元素,需要從第一個元素開始,一直找到需要的元素位置。但是增加和刪除一個元素對於連結串列資料結構就非常簡單了, 只要修改元素中的指標就可以了。
連結串列缺點:因為含有大量的指標域,所以佔用空間大,同時因為只有頭結點(後面說明)是明確知道地址的,所以查詢連結串列中的元素需要從頭開始尋找,非常麻煩。
從上面的比較可以看出,如果需要快速訪問資料,很少或不插入和刪除元素,就應該用陣列;相反, 如果需要經常插入和刪除元素就需要用連結串列資料結構了。