1. 程式人生 > >哈夫曼樹原理,及構造方法

哈夫曼樹原理,及構造方法

哈夫曼樹

一. 目的:找出存放一串字元所需的最少的二進位制編碼

二.  原理:首先統計出每種字元出現的頻率!(也可以是概率)//權值

------------------------------------------------------------------------------------------------

           例如:頻率表 A:60,    B:45,   C:13   D:69   E:14   F:5  G:3

第一步:找出字元中最小的兩個,小的在左邊,大的在右邊,組成二叉樹。在頻率表中刪除此次找到的兩個數,並加入此次最小兩個數的頻率和。

FG

最小,因此如圖,從字串頻率計數中刪除FG,並返回GF的和 8頻率表

 重複第一步:

-------------------------------------------------------------------------------------------------

頻率表 A:60,    B:45,   C:13   D:69   E:14   FG:8

最小的是 FG:8C:13,因此如圖,並返回FGC的和:21頻率表。

---------------------------------------------------------------------------------------------------

重複第一步:

---------------------------------------------------------------------------------------------------

頻率表 A:60    B: 45   D: 69   E: 14   FGC: 21

如圖

-----------------------------------------------------------------------------------------------------

重複第一步

-----------------------------------------------------------------------------------------------------

頻率表 A:60    B: 45   D: 69  FGCE: 35

-----------------------------------------------------------------------------------------------------

重複第一步

-----------------------------------------------------------------------------------------------------

頻率表 A:60   D: 69  FGCEB: 80

-----------------------------------------------------------------------------------------------------

重複第一步

-----------------------------------------------------------------------------------------------------

頻率表 AD:129  FGCEB: 80

新增 0 和 1,規則左0 右1

頻率表 A:60,    B:45,   C:13   D:69   E:14   F:5  G:3

每個 字元 的 二進位制編碼 為

A:10

B:01

C:0011

D:11

E:000

F:00101

G:00100