【数据结构】哈夫曼编码

设计哈夫曼编码分为两步

一、构建哈夫曼树

假设用于通信的电文由8个字母组成,字母在电文中出现的频率分别为0.07、0.19、0.02、0.06、0.32、0.03、0.21、0.10。

首先为了简洁我们将这些频率重新书写为7、19、2、6、32、3、21、10,此时将电文出现的频率理解为权,并将其以升序排列,得到2、3、6、7、10、19、21、32,将这组数据中较小的两个数构造出一个二叉树,并将这两个数的权相加得到形成的二叉树的权,得到新的数组5、6、7、10、19、21、32,重复这一过程,如图:

二、设计哈夫曼编码 

将哈夫曼树的任意一个节点与他的左孩子之间的连线标0,与他右孩子之间的连线标1,然后按照路径将哈夫曼编码读出即可,如图:

例如2(频率0.02的字母)的哈夫曼编码为:00000

       32(频率为0.32的字母)的哈夫曼编码为:01

猜你喜欢

转载自blog.csdn.net/2301_77112634/article/details/130669172