|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
附题目:有8个字母组成的电文,这些字母的频率分别是0.07,0.19,0.02,0.06,0.32, 0.03,0.21,0.10,画出哈夫曼树,计算出WPL值,为这8个字母设计哈夫曼编码。
我懵逼的点是当新合成的结点比旧根里的两个都小的话,是要放在和新结点的子节点同一个层次还是和新结点同个层次,大神们可以理解我不懂的点么?我开始画着画着就发现合成不了根结点,然后就改到能合成一个根,脑子转不过来了啊啊,最后我求出的WPL值是2.61,应该没有错误吧
本帖最后由 Hoiste 于 2021-5-9 14:42 编辑
为了避免麻烦我先把小数点去掉吧,按照思路来画。
这8个权从小到大排列是2,3,6,7,10,19,21,32,这是第一步。
其中最小两个权2,3提出来,组成2,3合成5的树,这时候把2,3从上面数组中去掉,替换成5,也就是5,6,7,10,19,21,32.
现在最小的两个权是5,6,同样提出来组成5,6合成11的树,现在就是11,7,10,19,21,32了。
这时候因为7,10都比新合成出来的11值小,所以提取出来两个最小的权是7,10单独变成一个分支合成17,且7和10是和5,6放在同一层次的。
接下来步骤思路就是上面这样子继续下去了。
|
|