1. 程式人生 > >哈夫曼樹與帶權路徑長度計算

哈夫曼樹與帶權路徑長度計算

假設我們一個權重為1,7,3,13,12,15,24怎麼樣畫出哈夫曼樹和計算帶權路徑長度。

首先,選出最小的兩個權重值,這裡是1,3(矩形表示葉子節點,圓表示根節點也是兩個葉子節點的和)如圖:

然後,選出第三小的7,算出父節點,如圖:

依次類推:

 

當11,12的父節點為23大於後面的13 ,重新畫一個分支,如圖:

這樣一棵哈夫曼樹就構建好了。

計算帶權路徑計算:

其實計算葉子節點的到根節點的距離乘以葉子節點自身的值,然後相加:

例如1這個葉子節點,1*5=5,3節點,3*5=15

1*5 + 3*5 + 7*4 + 12*3 + 30*2 + 13*2 + 14*2 =  188