5.8哈夫曼樹及其應用

哈夫曼樹的基本概念:

路徑和路徑的長度:
在一棵樹中,從一個結點往下可以達到的孩子或子孫結點之間的通路,稱爲路徑。通路中分支的數目稱爲路徑長度。
若規定根結點的層數爲1,則從根結點到第L層結點的路徑長度爲L-1

結點的權及帶權路徑長度:
若將樹中結點賦給一個有着某種含義的數值,則這個數值稱爲該結點的權
結點的帶權路徑長度爲:從根結點到該結點之間的路徑長度與該結點的權的乘積

樹的帶權路徑長度規定爲所有葉子結點的帶權路徑長度之和,記爲WPL

最有二叉樹
給定n個權值作爲n個葉子結點,按一定規則構造一棵二叉樹,使帶權路徑長度達到最小,稱這樣的二叉樹爲最優二叉樹,也稱爲哈夫曼樹

哈夫曼樹的構造
假設有n個權值,則構造出的哈夫曼樹有n個葉子結點。n個權值分別設爲W1、W2、…、Wn,則哈夫曼樹的構造規則是:
1.將W1、W2、…、Wn看成是由n棵樹的森林(每棵樹僅有一個結點)
2.在森林中選出兩個根結點的權值最小的樹合併,作爲一棵新樹的左右子樹,且新樹的根結點權值爲其左右子樹根結點權值之和
3.從森林中刪除選取的兩顆樹,並將新樹加入森林
4.重複2和3步,直到森林中只剩下一棵樹爲止,該樹即爲我們所求得的哈夫曼樹
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章