哈夫曼编码以及带权路径长度的计算

本文介绍了如何解决笔试题中关于哈夫曼编码{4, 9, 2, 7, 5, 12}的带权路径长度问题。首先,通过构建哈夫曼树,然后利用公式WPL=各权重*对应路径长度求解,详细展示了构造过程和计算方法。" 136142766,12831281,华为OD机试C卷:计算绘图机器图形面积,"['华为机试', '编程挑战', '算法', 'Java', '数据结构']

笔试题:哈夫曼编码{4,9,2,7,5,12}的带权路径长度

解决思路:

  1. 首先构造哈夫曼树
  2. 在使用WPL=(W1*L1+W2*L2+W3*L3+…+Wn*Ln)计算带权路径长度

实现:

构造哈夫曼树:

每次取出最小的两个数构造第一层,在给出的哈夫曼编码中是2和4

2
4
6

接下来是6和5

2
4
5
6
11

接下来是 7 和 9

7
9
16

下一步是 11 和 12

2
4
5
12
6
11
23

最后是23 和16

2
4
5
7
9
12
6
11
23
39
16
以上就是构造哈夫曼树的具体实现

计算带权路径长度

使用每一个方格的数乘以所在树的深度

WPL=4*(2+4)+3*5+2*(12+7+9)
以上就是计算的具体实现
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值