哈夫曼树的建立、编码以及WPL值的计算

本文详细介绍了如何使用字符集{A,B,C,D,E,F}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

假设用于通信的电文由字符集{A,B,C,D,E,F}中的字母构成,这些字母在电文中出现的概率分别为{0.10,0.19,0.20,0.35,0.12,0.04},要求:
1、构造一棵Huffman树,填写下表,要求左结点的权不大于右结点的权
2、在下表中填入各字符的Huffman编码(左分支为”0”,右分支为”1”)
3、求带权路径长度
解析:
1、哈夫曼树的构造
将电文概率由大到小依次排序
0.04,0.10,0.12,0.19,0.20,0.35
将0.04和0.10作为左子树,右子树构成一棵树。
则如图所示:
这里写图片描述
它们根节点之和作为新的结点,删掉刚才两个结点,加入新结点0.14重新由大到小排序
0.12,0.14,0.19,0.20,0.35
将最小的两个结点作为左子树、右子树构成新的树。
如图所示:
这里写图片描述
删掉刚才两个结点,加入新结点0.26,重新排序
0.19,0.20,0.26,0.35
将此时最小的两个结点作为左右子树,建立新的树
如图所示:
这里写图片描述
删掉刚才两个结点,加入新结点0.39,重新排序
0.26,0.35,0.39
将此时最小的两个结点作为左右子树,建立新的树
如图所示:
这里写图片描述
至此只剩下两个结点,构成满足条件的树,如图:
这里写图片描述
2,哈夫曼编码
(菜鸟的自我理解,有错误还希望大家指正)
如图所示:
这里写图片描述
这里附加一个数据结构与算法课本案例

这里写图片描述
3,WPL值的计算
首先给出路径和路径长度的概念,从树中一个结点到另一个结点之间的分支构成这两个结点之间的路径,路径上的分支数目称作路径长度。树的路径长度是从树根到每一结点的路径长度之和。
树的带权路径长度为树中所有叶子结点的带权路径长度之和,通常记作WPL.

带权路径长度 = (0.19 +0. 20 + 0.35) * 2 + 0.12 * 3 + (0.04 + 0.10) * 4 = 2.4

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值