
9-8延伸二元樹入門 Extended Binary Tree
至於什麼叫最小搜尋成本呢?就讓我們先從延伸二元樹(Extension Binary Tree)談起。任何一個二元樹中,若有n個節點,則有n-1個非空鏈結及n+1個空鏈結。如果在每一個空鏈結加上一個特定節點,則稱為外節點,其餘的節點稱為內節點,且定義此種樹為(延伸二元數),另外定義外徑長=所有外節點到樹根距離的總和,內徑長=所有內節點到樹根距離的總和。我們將以下例來說明(A)(B)兩圖,它們的延伸二元樹繪製:



以上(A)、(B)二圖為例,如果每個節點有加權值(例如搜尋機等),則外徑常必須考慮相關加權值,或稱為加權外徑長,以下將討論(A)、(B)的 加權外徑長:


9-9霍夫曼樹特訓班
霍夫曼樹經常用於處理資料壓縮的問題,可以根據資料出現的頻率來建構的二元樹。例如資料的儲存和傳輸是資料處裡的二個重要領域,兩者皆和資料量的大小息息相關,而霍夫曼樹正可用來進行資料壓縮的演算法。
簡單來說,如果有n個權值(q1,q2…qn),且構成一個有n個節點的二元樹,每個節點節點外部節點權值為qi,則加權徑長度最小的就稱為(最佳化二元樹)或(霍夫曼樹)Huffman Tree。對上一小節中,(A)、(B)二元樹而言,(A)就是二者的最佳化二元樹。接下來我們將說明,對一含權值的串列,該如何求其最佳化二元樹,步驟如下:
1.產生兩個節點,對資料中出現過的每一元素各自產生一樹葉節點,並賦予樹葉節點該元素之出現頻率。
2.另N為T1和T2的父親節點,T1和T2是T中出現頻率最低的兩個節點,令N節點的出現頻率等於T1和T2的出現頻率總和。
3.消去步驟的兩個節點,插入N,再重複步驟1。
我們將利用以上的步驟來實作求取霍夫曼樹的過程,假設現有五個字母BDACE的頻率分別為0.09、0.12、0.19、0.21和0.39,請說明霍夫曼樹建構之過程:



