哈夫曼樹的構造

2021-07-24 10:38:37 字數 1278 閱讀 3446

注意:哈夫曼樹並不唯一,但帶權路徑長度一定是相同的。

(1)8個結點的權值大小如下:

(2)從19,21,2,3,6,7,10,32中選擇兩個權小結點。選中2,3。同時算出這兩個結點的和5。

(3)從19,21,6,7,10,32,5中選出兩個權小結點。選中5,6。同時計算出它們的和11。

(4)從19,21,7,10,32,11中選出兩個權小結點。選中7,10。同時計算出它們的和17。

(btw:這時選出的

兩個數字都不是已經構造好的二叉樹裡面的結點

,所以要另外開一棵二叉樹;或者說,

如果兩個數的和正好是下一步的兩個最小數的其中的乙個

,那麼這個樹直接往上生長就可以了,如果這兩個數的和比較大,不是下一步的兩個最小數的其中乙個,那麼就並列生

長。)

(5)從19,21,32,11,17中選出兩個權小結點。選中11,17。同時計算出它們的和28。

(6)從19,21,32,28中選出兩個權小結點。選中19,21。同時計算出它們的和40。另起一顆二叉樹。

(7)從32,28, 40中選出兩個權小結點。選中28,32。同時計算出它們的和60。  

(8)從 40, 60中選出兩個權小結點。選中40,60。同時計算出它們的和100。 好了,此時哈夫曼樹已經構建好了。

構造哈夫曼樹 哈夫曼編碼

1.權值越大的節點,距離根越近 2.樹中沒有度為1的節點,這類樹叫正則 嚴格 二叉樹,樹的總節點 2 雙分支結點 1 單分支結點 雙分支結點 3.樹的帶權路勁 wpl 所有葉子結點的帶權長度路勁之和 長度最短。嗶哩嗶哩王卓老師的口訣 構造森林全是根,選用兩小選新樹,刪除兩小添新人,重複23剩單根 1...

哈夫曼樹構造 哈夫曼編碼

一 哈夫曼樹 p189 1.定義 帶權路徑長度 wpl 最小的二叉樹稱為哈夫曼樹 wpl 樹中所有葉子節點的帶權路徑長度之和 帶權路徑長度 從樹根到任意節點的路徑長度與該節點上權值的乘積 2.構造 1 將這n個節點分別作為n課僅含乙個結點的二叉樹,構成森林f 2 構造乙個新節點,從f中選取兩棵根節點...

哈夫曼樹構造

usr bin env python3 coding utf 8 created on fri jul 27 18 08 26 2018 author luogan 樹節點類構建 class treenode object def init self,data self.val data 0 sel...