早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用哈夫曼编码的哈夫曼树中,最下面的二叉树的两个叶子用来放权(概率)最低的两个编码,然后相加后向上一层层重复直至概率为1,那么这两个最小的编码放的时候有左右之分吗?如果任意那

题目详情
用哈夫曼编码的哈夫曼树中,最下面的二叉树的两个叶子用来放权(概率)最低的两个编码,然后相加后向上一层层重复直至概率为1,
那么这两个最小的编码放的时候有左右之分吗?
如果任意那么得到的二进制编码就不同啊
还有,最下面如果有两个二叉树,他们也要分大小放左右的,
否则结果也不同,到底这个是怎么定义的?
为什么有时只用一组二叉树,有时又要用两组呢?(用两组同时来明显得到的二进制代码长度要短些)
▼优质解答
答案和解析
两个最小的编码没有左右之分.
是不同,哈夫曼编码不是唯一的,但是它们的WPL(带权路径长度)都是一样的.
如果,最下面有两个二叉树,那么也不用考虑左右的问题,你只将最下面两个二叉树当作两个节点就可以了.
记住:哈夫曼编码不是唯一的.
哈夫曼编码力求使WPL(带权路径长度)最小,而不是让二进制代码最短.
是WPL最小,哈夫曼编码将令权值大的长一些,权值小的短一些.
我来回答你的追问啊.
你的第二种编码方式是错误的.按照哈夫曼编码规则,a不可能长度只有1.你可以把你的图贴出来.我相信你的编码方式一定不对.哈夫曼编码总是合并最小的两个,如果a的长度只有1,那么你的最后一种合并一定是17和7合并.正确的应该:2和4合并,5和某一个6合并,6和7合并,11和13合并.
看了用哈夫曼编码的哈夫曼树中,最下...的网友还看了以下: