1. 程式人生 > >02-看圖理解資料結構與算法系列(單向連結串列)

02-看圖理解資料結構與算法系列(單向連結串列)

單向連結串列

單向連結串列屬於連結串列的一種,也叫單鏈表,單向即是說它的連結方向是單向的,它由若干個節點組成,每個節點都包含下一個節點的指標。

單鏈表特點

  • 建立單鏈表時無需指定連結串列的長度,這個比起陣列結構更加有優勢,而陣列縱使實現成動態陣列也是需要指定一個更大的陣列長度,而且要把原來的陣列元素一個個複製到新陣列中。
  • 單鏈表中的節點刪除操作很方便,它可以直接改變指標指向來實現刪除操作,而某些場景下陣列的刪除會導致移動剩下的元素。
  • 單鏈表中的元素訪問需要通過順序訪問,即要通過遍歷的方式來尋找元素,而陣列則可以使用隨機訪問,這點算是單鏈表的缺點。

單鏈表建立

建立一個空連結串列,

 

image

 

插入鏈尾

nobody grows old merely by a number of years這些單詞按順序分別插入尾部,建立“nobody”節點,

 

image

 

連線起來,

 

image

 

繼續建立“grows”節點,

 

image

 

再連線起來,

 

image

 

以此類推,將剩下的分別建立節點並連線起來。

 

image

 

 

image

 

建立迭代器

迭代器的 current 指標初始指向head,

 

image

 

執行兩次 next 操作, current 指標指向索引為2的節點,

 

image

 

此時的節點值為,

 

image

 

設定 current 指標指向索引為4的節點,

 

image

 

插入節點

在索引1後面插入“but”和“someone”兩個節點。先將 current 指標指向索引為1的節點,建立一個"but"新節點,

 

image

 

插入到 current 指向位置,

 

image

 

執行 next 操作,

 

image

 

建立一個"someone"新節點,

 

image

 

插入到 current 指向位置,

 

image

 

刪除節點

將“but”和“someone”兩個節點刪除,先刪除“but”節點,

 

image

 

 

image

 

刪除“someone”節點,

 

image

 

 

image -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:超人汪小建
連結:https://juejin.im/post/5b5914b26fb9a04fda4e1fef
來源:掘金
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。