一、概念
數據
數據對象
數據元素
數據項
結構
邏輯結構
數據對象中數據元素之間的互相關係
- 集合
- 線性
- 樹形
- 圖形
物理結構
數據的邏輯結構在計算機中存儲形式
- 順序存儲
- 鏈式存儲
樹
樹的基本概念
樹的遍歷
- 前序:若二叉樹爲空,則空操作返回,否則先訪問根節點,然後前序遍歷左子樹,再前序遍歷右子樹。
- 中序:若二叉樹爲空,則空操作返回,否則從根節點開始,中序遍歷根節點的左子樹,然後是訪問根節點,最後中序遍歷右子樹。
- 後續:若二叉樹爲空,則空操作返回,否則從左到右先葉子後節點的方式遍歷訪問左右子樹,最後訪問根節點。
- 層序:若二叉樹爲空,則空操作返回,否則從樹的第一層,也就是從根節點開始訪問,從上而下逐層遍歷,在同一層中,按從左到右的順序對節點逐個訪問。
二叉樹
紅黑樹
四叉樹
Trie樹
數據結構應用場景
應用場景 | 數據結構 | 算法 | 說明 |
---|---|---|---|
數據對象深拷貝 | 樹 | 1. 遞歸 2. 棧、循環 |
1. 簡潔、容易爆內存 2. 複雜、快、數據過大棧也能爆 |
數據結構 | 優點 | 缺點 |
---|---|---|
數組 | 插入快 | 查找慢、刪除慢、大小固定 |
有序數組 | 查找快 | 插入慢、刪除慢、大小固定 |
棧 | 後進先出 | 存取其他項很慢 |
隊列 | 先進先出 | 存取其他項很慢 |
鏈表 | 插入、刪除快 | 查找慢 |
二叉樹 | 查找、插入、刪除快 | 算法複雜(刪除算法) |
紅黑樹 | 查找、插入、刪除快 | 算法複雜 |
hash表 | 存取極快(已知關鍵字)、插入快 | 刪除慢、不知關鍵字時存取很慢、對存儲空間使用不充分 |
堆 | 插入快、刪除快、對大數據項存取快 | 對其他數據項存取慢 |
圖 | 依據現實世界建模 | 算法有些複雜 |
AVL樹 | 查找、插入、刪除快 | 算法複雜 |