線性資料結構 (Linear Data Structures)#
線性表(Linear List)是資料排成像一條線一樣的結構,每個元素最多只有前和後兩個方向。本章先介紹四種最基礎的線性結構,再帶出三組建構在它們之上、最常用的線性掃描技巧:
- 陣列:連續記憶體、隨機存取
- 鏈結串列:零散記憶體、動態擴容
- 堆疊:後進先出(LIFO)
- 佇列:先進先出(FIFO)
掌握基礎結構後,再進一步學習三組高頻技巧:
- 雙指標:用兩個指標取代雙層迴圈,把
O(n²)降到O(n)(含快慢指標 Floyd 判圈) - 滑動視窗:高效處理「連續子陣列/子字串」問題
- 前綴和:
O(1)取得任意區間和,搭配雜湊表解「和為 k」一類問題
線性 vs 非線性#
| 類型 | 結構 | 範例 |
|---|---|---|
| 線性表 | 資料排成一條線 | 陣列、鏈結串列、堆疊、佇列 |
| 非線性表 | 資料之間非簡單前後關係 | 二元樹、堆、圖 |
跨倉庫導讀#
- 對應 LeetCode 練習:Array & Hashing ↗、Two Pointers ↗、Stack ↗、Linked List ↗