首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
有以下5个叶子节点1,1,3,2,5构成的哈夫曼树的带权路径
[单选题]
有以下5个叶子节点1,1,3,2,5构成的哈夫曼树的带权路径长度为()
24
26
23
25
查看正确选项
添加笔记
求解答(7)
邀请回答
收藏(356)
分享
9个回答
添加回答
41
唐子玄
结点带权路径长度=该结点到根的路径长度×该结点权
哈夫曼树:给定叶子权值和叶子数 可以构造出不同结构的二叉树 其中带权路径长度最小的二叉树称为最优二叉树 哈夫曼树是一种最优二叉树
哈夫曼树算法
根据n个权值构造具有n棵二叉树的森林---森林中的每颗二叉树都只有一个根结点 结点的数据域为一个权值 该结点左右子树都是空
在森林中选出2棵根结点权值最小的树A B(这样的树不止2棵---任选2棵)---创建一个新结点作为A B的根结点 A B分别作为根结点的左右孩子(权值小的在左边大的在右边 这样规定 哈夫曼树就唯一了)---将A B的权值相加作为根结点的权值---森林中产生一颗新树C(:~有左右孩子各1)
在森林中继续选出2棵根结点权值最小的树(2.中产生的C也在选择范围内)---重复2.的过程 直到将森林中所有的数合并成一颗二叉树---这颗二叉树就是哈夫曼树
按照上述算法可以得到如下哈夫曼树 其带权路径长度= 5*1+3*2+2*3+(1+1)*4 =25 选D
发表于 2015-11-30 18:18:10
回复(0)
8
scanf_cin
先从数组中选出两个最小的数1,1作为两个路径的权值,然后将这两个数相加放到数组中就是2,3,2,5,然后在从中选出最小的两个数2,2作为两个路径的权值。再将这两个数相加放到数组中得到4,3,5.然后在选出两个最小的数4,3作为两个路径的权值。在将这两个数的和放到数组中,得到7,5这就是最后的两个权值。将这些权值全部加起来就是1+1+2+2+4+3+7+5=25,这就是整个路径的长度,所以选d
发表于 2015-11-30 15:15:31
回复(0)
4
shizheng
一定要注意哈夫曼树的带权路径长度只需要计算叶子节点的带权路径长度之和
发表于 2016-03-20 15:46:23
回复(0)
1
蓝波aiku
结点带权路径长度=该结点到根的路径长度*该结点的权
发表于 2018-03-20 14:30:00
回复(0)
0
我是程序员小贱
一定要注意哈夫曼树的带权路径长度只需要计算叶子节点的带权路径长度之和,画出图以后就是1*4+1*4+2*3+3*2+5*1=25
发表于 2019-05-29 15:18:46
回复(0)
0
鸣酱
我这道题算到了,哈夫曼树是没有度为1的节点的所以在构造完哈夫曼时要注意否则又错了
发表于 2019-04-09 08:31:54
回复(0)
0
卤五花
根据如图的快速求解哈夫曼编码的方法可以得出带权路径长度为5*1+3*2+2*3+1*4+1*4=25
发表于 2019-03-12 21:11:08
回复(0)
0
GaloisGalois
每次选出两个最小的数 加起来求和之后放回去继续选出两个最小的数 直到最后只有两个数 也选出来 将所有选出的数加起来求和即为结果。
发表于 2018-10-25 17:17:22
回复(0)
0
josan
真想知道这种题目有没有什么快速解决的方法,每次画图,然后求解,好烦···
发表于 2017-07-09 13:06:06
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
树
来自:
迅雷2016研发工程师笔试题
上传者:
SunburstRun
难度:
9条回答
356收藏
14556浏览
热门推荐
相关试题
以下关于指针的说法,正确的是()
C++
C语言
评论
(39)
来自
迅雷2016研发工程师笔试题
有序顺序表含有127个元素,向其插...
复杂度
评论
(21)
来自
迅雷2016研发工程师笔试题
BN的gama labada意义是什么
评论
(1)
在大语言模型中,什么是"Spars...
大模型开发
评论
(1)
在大语言模型中,什么是"Knowl...
大模型开发
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题