一组权(10,12,16,21,30)通过霍夫曼算法求出的扩充二叉树的带全外部路径长度为?

作者&投稿:语便 (若有异议请与网页底部的电邮联系)
如何构造最小带权外部路径长度的扩充二叉树,并求出相应的~

搜索了一下百度,树的带权外部路径长度就是指WPL吧,跟树的带权路径长度是同一个概念
8 5 13 2 6构造的哈夫曼树是:
(34)
/ \
(13) (21)
/ \ / \
6 (7) 8 13
/ \
2 5
WPL = 6*2+2*3 + 5*3 + 8*2+ 13*2 = 75

霍夫曼算法使用贪心法,先对数据按权值排序:
10 12 16 21 30 选取权值最小的两个得 10+12=22
16 21 22 30 同上,得 16+21=37
22 30 37 同上,得 22+30=52
37 52 同上,得 37+52=89
画出该二叉树知,其带权路径长为:10×3 + 12×3 + 16×2 + 21×2 +30×2 = 200

在数据结构与算法中,人们把最小带权路径长度的二叉树称为霍夫曼树或者最优二叉树。

*路径是从树中一个节点到另一个节点之间的通路,路径上的分支数目称为路径长度。
*树的路径长度是从树根到每一个叶子之间的路径长度之和。
*节点的带权路径长度为从该节点到树根之间的路径长度与该节点树的乘积。
记为:
n
wpl = Σ Wk.Lk
k=1
其中,n为带权叶子节点数目,Wk为叶子节点的权值,Lk为叶子节点到根的路径长度

对应于霍夫曼树的算法也叫做霍夫曼算法。此算法的思想是:  (1)设给定的一组权值为{W1,W2,W3,……Wn},据此生成森林F={T1,T2,T3,……Tn},F 中的没棵二叉树只有一个带权为W1的根节点(i=1,2,……n)。  (2)在F中选取两棵根节点的权值最小和次小的二叉树作为左右构造一棵新的二叉树,新二叉树根节点的权值为其左、右子树根节点的权值之和。  (3)在F中删除这两棵最小和次小的二叉树,同时将新生成的二叉树并入森林中。  (4)重复(2)(3)过程直到F中只有一棵二叉树为止。

扩充方法如下,例:
(10,12,16,21,30),权值从小到大(10-30)。
1)将5个节点看成是5棵二叉树,它们的根节点是这5个节点,它们的左右子树均空,所以不画出它们的左右子树:
2)选出根节点的权值最小的两棵二叉树,作为左右子树构造成一棵新的二叉树,且置新的二叉树的根节点的权值为其左右子树根节点权值之和。(至于哪棵子树作为新的二叉树的左/右子树,没有硬性规定,不过我们一般习惯将根节点的权值小的那个二叉树作为新的二叉树的左子树。)

先选出最小和次最小的两个根10,12 ,组合成一个二叉树,(括号为左右子树的权值之和)
(22)
/ \
10 12

然再从16,21,(22),30 中选出最小和次最小的两个根 16,21,组合成二叉树,

(37)
/ \
16 21

继续从(22),30,(37)中选出最小的和次最小的根(22),30组合
(52)
/ \
(22) 30
/ \
10 12
继续从(52)(37)中选出最小的和次最小的根(72),37组合

(81)
/ \
(52) (37)
/ \ / \
(22) 30 16 21
/ \
10 12

最终得到树如下图
()
/ \
() ()
/ \ / \
() 30 16 21
/ \
10 12

** 带权路径长度答案是 = (10+12) *3 + (30+16+21)*2 = 200

“权”表示每一位所具有的值
“树的带权路径长度”为树中所有( 结点的权数 * 该结点的路径长度 )之和。
“路径长度”是路径上分支数目。
89
/ \ 例如该树,各个结点的权分别是10,12,30,16,21
52 37 10和12的路径是3,因为他们走到根部经过三跟“/ ”
/ \ / \ 同理30,16,21路径为2
22 30 16 21 扩充二叉树在二叉树中出现空的子树(包括树叶)上增加空的树叶
/ \ /\ /\ /\ 使其成为满二叉树。如图,已经补成满二叉树。
10 12 ()() ()() ()()
现在来看霍夫曼算法 ,依旧看例子,在F={10,12,16,21,30}中找到最小的两个数:10,12作为左右构造一棵新的二叉树,新二叉树根节点的权值为其左、右子树根节点的权值之和。然后在F中删除这两棵最小和次小的二叉树(即10,12),同时将新生成的22(22为10和12的和)并入森林中。
F={22,16,21,30},重复以上步骤,取最小的和次小的16和21构成新树…… 最终并成上图列举的树。

则带权外部路径之和:(10+12) *3 + (30+16+21)*2 = 200

为方便理解。把最优二叉树看成在做功对象一定的前提下,求做工最少的方法。当然规则是,每次只能对两个做功,而两个物品搬到同一个地点合并后,继续往上搬动。
首先将选择最少的10斤,12斤往上搬动一米,到达后合成22斤,现在物品是22斤,16斤,21斤和30斤。
同理,选择最少的16斤和21斤,向上搬运一米,到达后合成37斤,现在物品是22斤,37斤和30斤。
同理,选择最少的22斤和30斤,向上搬运一米,到达后合成52斤,现在物品是37斤和52斤。
在搬运37斤和52斤就成功了,向上搬运一米,到达后合成89斤。
这里面做功为:(10+12) *3 + (30+16+21)*2 = 200 ,不信你试试,嘿嘿~~

祝你学的开心愉快~~


某只股票,分红方案 每10股送5股送12元 比如说除权的前一天收盘价为30...
股权登记日的价格是30元,要把分红的现金减去30-1.2=28.8元\/股,10股送5股的话,现在的股票数量比原来的多出来,变为原来的1.5倍 但是价格要28.8\/1.5=18.67元\/股 就是除权除息日股票的开盘价格

12进制的数字怎么转换为10进制的数
若想在完成12进制加减后转为10进制可进行以下操作=((IF(A1-INT(A1)<B1-INT(B1),A1-1-INT(B1)+0.12-B1+INT(B1),A1-B1)-round((IF(A1-INT(A1)<B1-INT(B1),A1-1-INT(B1)+0.12-B1+INT(B1),A1-B1),0))\/0.12+round((IF(A1-INT(A1)<B1-INT(B1),A1-1-INT(B1)+0...

《经济法》每日一练-2021年注册会计师考试(12-10)
A.庚可以入伙,因甲作为执行事务合伙人有权自行决定接收新合伙人 B.庚可以入伙,因全体合伙人过半数同意 C.庚不得入伙,因丁、戊作为有限合伙人无表决权,而反对庚入伙的普通合伙人占全体普通合伙人的2\/3 D.庚不得入伙,因未得到全体合伙人一致同意 3.【单选题】根据合伙企业法律制度的规定,下列...

二次世界世界大战的主要事件
英国也对德国城市进行了反击,并组织海军炮击德国港口,德国始终未能获得英国制空权,10月12日,希特勒取消入侵英国的计划。同年6月意大利对东非英属肯尼亚、索马里发动进攻,9月对埃及发动进攻,很快都被英军击溃,德国不得不派出非洲军团支援意大利。1940年10月德国出兵巴尔干占领罗马尼亚油田,罗马尼亚、匈牙利...

从10世纪至12世纪,少数民族建立了哪些政权?这一期间,各少数民族证券通中...
塞北三朝。分别是辽,西夏,金

1974年农历10月12日出生虎2009年运程
地空星与地劫星在紫微斗数里面,是一组类似的星曜, 地空星的特性,比起地劫星要来的小。 ● 受到...2015-08-01 女虎1974年10月12日是什么命 2009-01-13 男虎74年8月16日女兔75年10月12日相配

我想问下:农历1985年10月12日的各种运程(事业,财运等)???
二十八宿:娄 甲子纳音:炉中火 距今:7739天 2007年星座运程-射手座 总体运势 1、 整体运 ...哈波马可仕(Harpo Marx)美国音乐喜剧演员,为喜剧丑角、电影演员、竖琴演奏者,也是喜剧二人组“马可仕兄弟...2007年十二生肖运势--牛 属牛人士的2007年运程 1949、1961、1973、1985、1997 运势 今年对属牛的朋友...

宁阳县国有土地使用权挂牌出让公告(宁阳县国有土地使用权挂牌出让公告...
近日,泰安市公共资源交易网发布宁阳县自然资源和规划局国有土地使用权挂牌出让公告根据《中华人民共和国土地管理法》和《中华人民共和国城市房地产管理法》的有关规定,经宁阳县人民政府批准,宁阳县自然资源和规划局和泰安市公共资源交易中心宁阳分中心决定以网上交易方式挂牌出让五宗国有建设用地使用权。现...

10进制转8进制方法
1、先来看八进制如何转换成十进制。其方法与二进制转换成十进制差不多:按权相加法,即将八进制每位上的数乘以位权(如8,64,512….),然后将得出来的数再加在一起。如将72.45转换为十进制。如图1所示:2、 整数部分,除8取余法,每次将整数部分除以8,余数为该位权上的数,商继续除以8,...

专利商标著作权的保护期是多久?
著作权的保护期限是50年,商标权的保护期限是10年,专利权有10年,也有20年的,具体的保护期限如下:(1)著作权 1.作者的署名权、修改权、保护作品完整权的保护期不受限制。2.公民的作品,其发表权、著作财产权的保护期为作者终生及其死亡后五十年,截止于作者死亡后第五十年的12月31日;如果是合作...

安化县17127563138: 一组权(10,12,16,21,30)通过霍夫曼算法求出的扩充二叉树的带全外部路径长度为?我算的结果为170,
代张复方: 霍夫曼树如下: 89 52 37 22 30 16 21 10 12 所以计算带权路径长度为: 3 * 10 + 3 * 12 + 2 * 30 + 2 * 16 + 2 * 21 = 200

安化县17127563138: 数据结构题:对于给出的一组权w={10, 12, 16, 21, 30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长 -
代张复方: 数据结构的概念有些不一致,先说一下我这里的扩充二叉树:设一个权值集合为{w0,....,wn},若T是一个有n个叶节点的二叉树,且n个叶节点的权值分别为w0,....wn,则称T是权值为w0,.....wn的扩充二叉树.霍夫曼算法使用贪心法,先对数据按权值排序:10 12 16 21 30 选取最小的两个得 10+12=2216 21 22 30 同上,得 16+21=3722 30 37 同上,得 22+30=5237 52 同上,得 37+52=89 画出该二叉树知,其带权路径长为:10*3 + 12*3 + 16*2 + 21*2 +30*2 = 200 故结果为200

安化县17127563138: 对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度为 -
代张复方:[选项] A. 89 B. 189 C. 200 D. 300

安化县17127563138: 一组权(10,12,16,21,30)通过霍夫曼算法求出的扩充二叉树的带全外部路径长度为? -
代张复方: 在数据结构与算法中,人们把最小带权路径长度的二叉树称为霍夫曼树或者最优二叉树. *路径是从树中一个节点到另一个节点之间的通路,路径上的分支数目称为路径长度. *树的路径长度是从树根到每一个叶子之间的路径长度之和. *节点的...

安化县17127563138: 霍夫曼算法求扩充二叉树的带权外部路径长度 -
代张复方: 每行选出最小的两个数相加10 12 16 21 30 16 21 22 30 22 30 37 37 52 89 将较小的数排在左子树,则其扩充的二叉树即为: 89 / \ 37 52 / \ / \ 16 21 22 30 / \ 10 12 由图可看出所有的权都在最外部,所以扩充二叉树的带权外部路径长度为:16*2+21*2+30*2+10*3+12*3=200.

安化县17127563138: 2010年9月三级数据库13题(13)对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度 -
代张复方:[答案] 霍夫曼算法使用贪心法,先对数据按权值排序:10 12 16 21 30 选取权值最小的两个得 10+12=2216 21 22 30 同上,得 16+21=3722 30 37 同上,得 22+30=5237 52 同上,得 37+52=89画出该二叉树知,其带权路径长为:10*3 + 1...

安化县17127563138: 霍夫曼算法求扩充二叉树的带权外部路径长度对于给出的一组权w={10,12,16,21,30},通过霍夫曼算法求出的扩充二叉树的带权外部路径长度是多少?怎么算... -
代张复方:[答案] 每行选出最小的两个数相加 10 12 16 21 30 16 21 22 30 22 30 37 37 52 89 将较小的数排在左子树,则其扩充的二叉树即为: 89 / \ 37 52 / \ / \ 16 21 22 30 / \ 10 12 由图可看出所有的权都在最外部,所以扩充二叉树的带权外部路径长度为: 16*2+21*...

安化县17127563138: 给定一组权W={3,5,10,12,15,22} 构造哈夫曼树,并计算它的带权外部路径长度WPL. -
代张复方: 从根节点到各个百叶节点的路径长度与对应叶节点权值的乘度积之和内 22的路径长度是1 10、12、15的路径长度是3 3、5的路径长度是4 所以容WPL = 22 + (10 + 12 + 15) * 3 + (3 + 5) * 4 = 22 + 111 + 32 = 165

安化县17127563138: 对于给出的一组权W={10,12,16,21,30},通过哈夫曼算法求出的哈夫曼树的带权路径长度为 -
代张复方: 哈夫曼编码(Huffman Coding)是一种编码方式,以哈夫曼树—即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩.在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称"熵编码法"),用于数据的无损耗压缩....

安化县17127563138: 给定权值(5,10,12,15,30,40),构造相应的哈夫曼树.要求写出构造步骤 -
代张复方: 按权值大小排列后 5,10,12,15,30,40 只要按照将最小的两个合并, 合并后的值再入列中(最小的两个出列), 至到列中只有一个值. 得到序列5+10=15, (12,15,15,30,40) [5]`````[10]\`````/\```/`\`/ ` `(15)` 从(12,15,15,30,40)找两个最小的12+15=...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网