Chapter 3 樹與二叉樹

糖醋麻辣蝦發表於2018-03-25

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-   平衡二叉樹結點遞推公式

     

相關文章