線性資料結構 (Linear Data Structures)#

線性表(Linear List)是資料排成像一條線一樣的結構,每個元素最多只有前和後兩個方向。本章先介紹四種最基礎的線性結構,再帶出三組建構在它們之上、最常用的線性掃描技巧:

  1. 陣列:連續記憶體、隨機存取
  2. 鏈結串列:零散記憶體、動態擴容
  3. 堆疊:後進先出(LIFO)
  4. 佇列:先進先出(FIFO)

掌握基礎結構後,再進一步學習三組高頻技巧:

  1. 雙指標:用兩個指標取代雙層迴圈,把 O(n²) 降到 O(n)(含快慢指標 Floyd 判圈)
  2. 滑動視窗:高效處理「連續子陣列/子字串」問題
  3. 前綴和O(1) 取得任意區間和,搭配雜湊表解「和為 k」一類問題

線性 vs 非線性#

類型結構範例
線性表資料排成一條線陣列、鏈結串列、堆疊、佇列
非線性表資料之間非簡單前後關係二元樹、堆、圖

跨倉庫導讀#