赫夫曼樹理論簡

赫夫曼樹

一、前言
赫夫曼樹,又稱最優樹,是一類帶權路徑長度最短的樹。
二、基礎知識
1、路徑長度:從樹中一個結點到另一個結點之間的分支構成這兩個結點之間的路徑,路徑上分支數目稱爲路徑長度。
2、樹的路徑長度:是從樹根到每一個結點的路徑長度之和。完全二叉樹就是路徑長度最短的二叉樹。
3、樹帶權路徑長度:爲樹中所有葉子結點的帶權路徑長度之和(記做WPL)。
4、最優二叉樹或者赫夫曼樹:假設有n個權值(w1,w2,w3,w4,,,,,,wn)。試構造一棵有n個葉子結點的二叉樹,每個葉子結點帶權爲wi,其中稱帶權路徑長度WPL最小的二叉樹稱爲最優二叉樹或者赫夫曼樹。
在這裏插入圖片描述
WPL(a) = 27+25+22+24 = 36
WPL(b) = 24+37+35+21 = 46
WPL© = 17+25+32+34 = 35
其中以c樹的最小,可以驗證,它恰爲赫夫曼樹,即其帶權路徑長度再所有帶權爲7,5,2,4的4個葉子結點的二叉樹中居最小。
5、赫夫曼樹的構造
假設有n個權值,則構造出的赫夫曼樹有n個葉子結點。n個權值分別設爲w1,w2,w3,wn:
(1) 將w1、w2、…,wn看成是有n 棵樹的森林(每棵樹僅有一個結點);
(2) 在森林中選出兩個根結點的權值最小的樹合併,作爲一棵新樹的左、右子樹,且新樹的根結點權值爲其左、右子樹根結點權值之和;
(3)從森林中刪除選取的兩棵樹,並將新樹加入森林;
(4)重複(2)、(3)步,直到森林中只剩一棵樹爲止,該樹即爲所求得的哈夫曼樹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章