模板:數據結構與算法(基礎概念)
外觀
| 研究數據結構的核心(目標:設計高效的算法) | 邏輯結構 · 存儲結構 · 基本操作(插入 · 刪除 · 查找) | |
| 邏輯結構 | ||
|---|---|---|
| 線性結構 | 非線性結構 | |
| 定義 | 元素之間有一對一的線性關係 | 元素之間關係複雜,可能有層次或網絡關係 |
| 例子 | 線性表(數組 · 鍊表) · 棧(後進先出,LIFO) · 隊列(先進先出,FIFO) · 串(字符序列 · 字符串) · 數組 · 廣義表 | 樹(一對多) · 圖(任意多對多) |
| 數據存儲結構 | ||
| 順序存儲結構 | 鏈式存儲結構 | |
| 定義 | 用連續的內存單元存儲數據 | 用指針將不連續的內存單元連結在一起 |
| 特點 | 易於通過索引訪問 · 插入和刪除操作相對複雜,需要移動大量元素 | 靈活,支持動態擴展 · 插入和刪除效率高,但隨機訪問速度慢 |
| 算法定義 | 解決特定問題的一系列明確的指令(數據+結構=算法) | |
| 算法的特性 | 有窮性 · 確定性 · 可行性 · 輸入 · 輸出 | |
| 數據結構中的關係 | 線性結構(一對一 · 直線結構) · 樹形結構(一對多 · 分支結構) · 圖形結構(多對多 · 網絡結構) | |
| 抽象數據類型(ADT) | 定義了數據和操作,但與具體實現無關。 | |