哈夫曼樹

(一)基礎知識
路徑:從一個結點到另一個結點之間的分支序列。
路徑長度:從一個結點到另一個結點所經過的分支數目。
結點的權:根據應用的需要可以給樹的結點賦權值
帶權路徑長度:從根到該結點的路徑長度與該結點權的乘積。
樹的帶權路徑長度: 樹中所有葉子結點的帶權路徑之和。
哈夫曼樹:由n個帶權葉子結點構成的所有二叉樹中帶權路徑長度最短的二叉樹。又叫最優二叉樹。

(二)有數據爲{ 22,10,46,17,13,110,20,15,34 }試構造一棵哈夫曼(Huffman樹),並計算WPL。

先從其中選出兩個最小的節點10 ,13,由他們的和組成他們的父節點 23。

然後,將23放回中序列中。參與其他的節點篩選。

這裏寫圖片描述

重複上面的過程則可以完成構造樹的過程。

結果如下:(結果有多種,但是WPL值是統一的。)

這裏寫圖片描述

WPL=110*1+34*3+22*4+20*4+46*3+10*5+13*5+15*5+17*5=793

(三)字符串“alibaba”用哈夫曼編碼來編碼,則共有多少位?

a有3個,b有2個,l、i分別有一個。

所以,a的權值爲3,b的權值爲2,l的權值爲1,i的權值爲1。

構造哈夫曼樹的結果爲:

這裏寫圖片描述

編碼結果:

這裏寫圖片描述

每個字母對應的編碼
a 0
b 10
l 110
i 111

則alibaba對應的編碼,總共需要13位
a 0
l 110
i 111
b 10
a 0
b 10
a 0

(四)二叉樹轉化爲樹

這裏寫圖片描述

(五)樹轉化爲二叉樹

這裏寫圖片描述

發佈了110 篇原創文章 · 獲贊 26 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章