首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
假设某段通信电文仅由 6 个字母 ABCDEF 组成,字母在
[单选题]
假设某段通信电文仅由 6 个字母 ABCDEF 组成,字母在电文中出现的频率分别为 2,3,7,15,4,6。根据这些频率作为权值构造哈夫曼编码,最终构造出的哈夫曼树带权路径长度与字母 B 的哈夫曼编码分别为______。(这里假定左节点的值小于右节点的值)
86,1011
70,1000
86,0001
70,0010
92,1000
92,0100
查看答案及解析
添加笔记
邀请回答
收藏(3026)
分享
45个回答
添加回答
137
推荐
编号2015
A
长度计算为(2+3)*4+(4+6+7)*3+15*1=86
所以B的编码(也就是3)为1011
编辑于 2016-04-17 17:01:03
回复(20)
51
喜刷刷
所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度。这里就是2*4+3*4+4*3+6*3+7*3+15*1=86
发表于 2015-08-06 13:25:41
回复(15)
1
孤天祭
假定左结点的值小于右结点的值,最后标号左0右1
发表于 2020-07-28 21:16:13
回复(0)
3
ByronDo
算法要求选取根结点权值最小的两棵二叉树作为左右子树构造一棵新的二叉树,但并没有要求哪一棵作左子树,哪一棵作右子树,所以左右子树的顺序是任意的。如果是这样的话,有多个答案,C也可。希望大家可以讨论下。
发表于 2015-03-10 17:02:31
回复(2)
48
蛊声孒
左小右大根据哈夫曼编码标出来0和1,然后顺着线就可以把路径长度跟码写出来了
长度:37+22+9+5+3=86
编码:1011
编辑于 2015-09-24 21:06:42
回复(11)
25
Acamy
得到B(对应3)的编码为1011
一棵哈夫曼树的带权路径长度等于树中所有的叶结点的权值乘上其到根结点的路径长度。
所以
长度:
(2+3)*4+(4+6+7)*3+15*1=86
发表于 2017-07-03 15:47:10
回复(2)
6
edutiantang
哈夫曼树构建如下:
得到B的编码为1011
一棵哈夫曼树的带权路径长度等于树中所有的叶结点的权值乘上其到根结点的路径长度。
所以
长度:
(2+3)*4+(4+6+7)*3+15*1=86
编辑于 2016-09-06 22:06:53
回复(1)
4
新玥
哈夫曼编码规则是每次取权值最小的两个结点构造树
发表于 2018-09-28 09:20:03
回复(0)
4
┮澈兮Д
叉
忽略了 左结点的值小于右结点的值
不错 只选A
发表于 2015-04-14 14:39:49
回复(0)
3
卡卡girl
重点在最后一句:假设左结点值小于右结点···
发表于 2015-08-29 11:00:51
回复(0)
2
牛客218196695号
(1)这个题哈弗曼编码是左子树为'0' ,右子树为'1' ,
(2)一棵哈夫曼树的带权路径长度等于树中所有的叶结点的权值乘上其到根结点的路径长度
发表于 2020-06-05 11:57:15
回复(0)
2
菩提旭光
编辑于 2015-08-22 17:25:23
回复(0)
0
犀衢
左节点的值小于右节点,所以构造时要注意顺序,按正常从左往右构造得到的应该是0001,按题目的得到的是1011
发表于 2024-08-12 16:07:11
回复(0)
0
可爱的雪碧破防了
构造过程就是,先排序数组,取最小的两个值,同时删除这两个值,把两个值的和加入数组。重复这个步骤
发表于 2024-07-31 17:27:16
回复(0)
0
牛客321509759号
没看到左结点小于右结点
发表于 2023-05-28 10:14:56
回复(0)
0
一叶舟troy

step1.
创建一个优先级队列(小)
- 【2 3】 4 6 7 15
step2. 重复
pop 2个最小的,然后累计和添加进去
- [4 5 6 7 15
- [6 7] 9 15
- 9 13 15
- 15 22
step3 左节点的值小于右节点的值
发表于 2021-08-04 14:10:17
回复(0)
0
乌拉拉哼哼哈嘿
发表于 2021-06-22 09:24:47
回复(0)
0
YkekeY
注意假定条件:左节点的值小于右节点的值
发表于 2021-05-05 12:07:32
回复(0)
0
天尊墨宇
选A
B(对应3)的编码为1011
棵哈夫曼树的带权路径长度等于树中所有的叶结点的权值乘上其到根结点的路径长度。
所以
长度:
(2+3)*4+(4+6+7)*3+15*1=86
发表于 2020-06-22 09:07:38
回复(0)
0
麒麟央宗
我其实不太懂为何此处6和7要单独拿出来作为一个新的树。但是之前的4就可以直接加在之前的树里。
发表于 2019-08-14 14:35:07
回复(0)
0
水鬼
编辑于 2019-08-23 10:15:19
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
树
来自:
阿里巴巴2015研发工...
难度:
45条回答
3026收藏
29459浏览
热门推荐
相关试题
下列 C 代码中,不属于未定义行为...
阿里巴巴
C语言
评论
(75)
来自
阿里巴巴2015研发工程...
明明的随机数
数组
评论
(3918)
来自
华为研发工程师编程题
字符串分隔
字符串
评论
(3146)
进制转换
字符串
评论
(2563)
来自
华为研发工程师编程题
开关闭合瞬间,电容电压uc(0+)为
电路基础
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题