Chapter 3 樹與二叉樹
1- 二叉樹
主要性質:
1 葉子結點數 = 度為2的結點數 + 1
2 二叉樹第i層上最多有 (i≥1)個結點
3 深度為k的二叉樹最多有 個結點
2- 二叉樹的鏈式儲存結構&&遍歷
1 鏈式儲存結構
2 先序
3 中序
4 後序
3- 線索二叉樹
4- 樹、二叉樹、森林之間的轉換
5- 樹和森林的遍歷
6- 樹與二叉樹的應用
1) 二叉排序樹(查詢/搜尋)BST == Binary Sort/Search Tree
1 插入:一定是葉結點
2 刪除:
葉子->直接刪
只有一棵子樹->刪掉後接上子樹
既有左子樹,又有右子樹->找到右子樹最左結點/左子樹最右結點代替它,然後刪去。
3 查詢效率分析
l 二叉排序樹的ASL,主要取決於樹高。
l 與二叉查詢判定樹相似,但二分唯一,二叉不唯一。
l 當有序表靜態查詢時,宜順序表儲存
l 二分查詢動態查詢時,宜二叉排序樹
2) 平衡二叉樹(AVL樹)
平均查詢長度ASL O(log2n)
3) 哈夫曼樹(最優二叉樹)
產生最短字首碼
注:
1- 樹的路徑長度是所有路長度的總和
Huffman的帶權路徑長度:根結點到任意結點的路徑長度(經過的邊數)與該結點上權值的乘積。
2- 二叉樹與度為2的樹不同。
3- 三種遍歷時間複雜度O(n)
二叉排序樹O(logn)
AVL樹O(logn)
4- 棧:遞迴->非遞迴
佇列:層次遍歷
5- 先、中序/中、後序/中、層序,可唯一確定一棵二叉樹
6- 前、中線索二叉樹不再需要棧的支援,後序線索二叉樹仍需要
7- 平衡二叉樹結點遞推公式