中级软件设计师——哈夫曼树题目解法

本文介绍了如何利用哈夫曼树为特定字符构造前缀编码。通过逐步合并权值最小的节点,构建最优二叉树,并确定各字符的编码长度,最终得出a:0011, b:01, c:000, d:101, e:11, f:0010, g:100的编码方案。" 103201634,8700906,Android开发实用技巧与常见问题解决方案,"['Android开发', '常用工具类']
摘要由CSDN通过智能技术生成

假设某消息中只包含7个字符{a,b,c,d,e,f,g},这7个字符在消息中出现的次数为{5,24,8,17,34,4,13} ,利用哈夫曼树(最优二叉树)为该消息中的字符构造符合前缀编码要求的不等长编码。各字符的编码长度分别为(A)。

A.a:4,b:2,c:3,d:3,e:2,f:4,g:3
B.a:6,b:2,c:5,d:3,e:1,f:6,g:4
C.a:3,b:3,c:3,d:3,e:3,f:2,g:3
D.a:2,b:6,c:3,d:5,e:6,f:1,g:4

哈弗曼树中,一棵二叉树要使其WPL值最小,必须使权值越大的叶子结点越靠近根结点,而权值越小的叶子结点,越远离根结点。

哈夫曼树从出现频率最小的节点开始画,即从下往上画,题目中{5,24,8,17,34,4,13},最小的两个节点是a的5和g的4,注意小的数要放在左子树,因此,得出

接着重复上面的操作,在{9,24,8,17,34,13}中找到数值最小的两个节点8和9,8放在左子树或右子树都可以

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值