1. 程式人生 > >演算法:(三)連結串列

演算法:(三)連結串列

(一)連結串列和陣列都是一種線性結構

  • 陣列是一段連續的儲存空間
  • 連結串列空間不一定保證連續,為臨時分配

(二)連結串列的分類

  • 按連線方向
    • 單鏈表
    • 雙鏈表
  • 按有環無環
    • 普通連結串列
    • 迴圈連結串列

(三)連結串列問題關鍵

  • 連結串列調整函式的返回值型別,根據要求往往是節點型別
  • 處理連結串列過程中,先採用畫圖的方式理清邏輯
  • 連結串列問題對於邊界條件討論要求嚴格
  • 大量連結串列問題可以使用額外資料結構來簡化調整過程
  • 但連結串列問題最優解往往是不使用額外資料結構的方法

(四)連結串列的插入和刪除

  • 特殊處理連結串列為空,或者連結串列長度為1的情況
  • 注意點:頭尾節點及空節點需要特殊考慮
  • 單鏈表插入操作:斷開連結串列,插入,next指標指向改變
  • 單鏈表刪除操作:前一個節點的next指標指向要刪除的節點的後一個節點
  • 雙鏈表的插入與刪除和單鏈表類似,但是要額外考慮previous指標的指向