哈夫曼树、带权路径长度、前缀编码 的概念
创始人
2024-05-24 14:44:01
0

文章目录

  • 一、基本概念
    • 1.1带权路径长度(WPL)
    • 1.2哈夫曼树
  • 二、哈夫曼树的构造
  • 三、哈夫曼树的应用
    • 3.1哈夫曼编码与前缀编码

一、基本概念

1.1带权路径长度(WPL)

路径长度: 经历的边数
结点的带权路径长度: 从树的根到该结点的路径长度 X 该结点上权值。

举例帮助理解
在这里插入图片描述
图中结点A的带权路径长度为:3×5=153\times5=153×5=15
图中结点D的带权路径长度为:2×2=42\times 2=42×2=4


1.2哈夫曼树

树的带权路径长度: 所有叶子结点的带权路径长度之和
哈夫曼树: 在含n个带权结点的二叉树中,带权路径最小的二叉树,又称最优二叉树

【注意】:哈夫曼树是最小带权二叉树,此处指树的带权路径长度(所有叶子结点WPL之和)

二、哈夫曼树的构造

给定n个权值分别为w1,w2,w3,...,wnw_1,w_2,w_3,...,w_nw1​,w2​,w3​,...,wn​的结点,构造哈夫曼树的算法描述如下:

  1. 每次从结点集合中选择最小的两个结点,作为新结点的左右子树。
  2. 新结点的权值为被选出的两个结点权值之和。
  3. 删除旧的两个结点,将新结点加入集合
  4. 重复123步骤,直至集合中只剩一个结点

举例帮助理解:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,哈夫曼树构造完毕
WPL=7∗1+3∗(1+2+2+3)=31WPL=7*1+3*(1+2+2+3)=31WPL=7∗1+3∗(1+2+2+3)=31


三、哈夫曼树的应用

3.1哈夫曼编码与前缀编码

笔者在学习过程中,一直不明白,为什么哈夫曼树中,最小带权路径长度,是指所有叶子结点的WPL之和。也就是说,a,b,c,d都只能为叶子结点。
在这里插入图片描述
在此篇文章的案例中给出了答案。


可变长度编码: 允许对不同字符用不等长的二进制位表示
为了使编码的长度更短,进行可变长度编码,频率越高的码,对应的位数越少。根据我们所学的知识,可用哈夫曼树来解决。


举例帮助理解
学霸小甲答应告诉学渣小乙考试答案。他们决定用二进制编码来防止老师发现。
已知:C的出现频率为40%,A为30%,B为20%,D为10%
在这里插入图片描述
这里给出了答案。
对同一答案CAAABD
正确的哈夫曼编码应该为
0101010111110
而错误的哈夫曼编码为
01111110

只用肉眼看,是看不出问题在哪里的。一个合格的编码唯一对应一个答案。那么我们就从得到的编码逆向推导答案。

01111110得到的答案不唯一
0 11 11 11 0 = C B B B C??
0 1 1 1 1 1 1 0 = C A A A A A A C??
在读到A时,哈夫曼树仍可往下读得到B,D。(B,D的编码包含A)
因此,无法判断一个答案的范围。

0101010111110得到的答案唯一
0 10 10 10 111 110
= C A A A B D
而在正确编码中,读到A/B/C/D时,均为叶子结点,哈夫曼树不可往下读。也就实现了自动截断


总结如上,要使编码之间不冲突,则编码之间是互相独立的,没有一个编码是另一个编码的前缀。这样的编码称之为前缀编码
哈夫曼编码就是一种前缀编码

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...