延續上一篇的核心主題,今天要複習的是資料結構裡面的list。
list是什麼?list 是由許多節點所組成的,而每一個節點都包含了一個以上的data(資料欄)及一個以上的link(鏈結),換句話說,對於任意一個i值來說,一個節點是有data[i]和link[i]一起共同組成的。
為什麼需要list?因為有了list後,新增及一筆資料變得更加簡單、方便。
以下圖4.3來說明新增一筆資料:只需要改變FAT 的link連結,將它連結到所要新增的data(GAT),再將GAT的link連結到HAT就完成了。簡而言之,在插入時並不需要移動串列裡的任何原有的元素,也就是說並不需要移動任何資料,只需要改變link欄位的空間。
而刪除一筆資料也是同樣的道理,同樣以下圖4.4來說明,要刪除GAT,只需要打斷FAT對GAT的連結,將FAT的link改連結到HAT這樣就完成了,而原先GAT與HAT的連結,由於已經沒有任何連結可以連接到GAT,連帶的不會觸動到GAT連結到HAT。
(圖片來源:基礎資料結構使用C++ 第二版 4-6頁)
參考資料:基礎資料結構使用C++ 第二版