用huffman算法求带权为2,3,5,7,8的最优2元树,要求画出中间过程?

作者&投稿:第徐 (若有异议请与网页底部的电邮联系)
用Huffman的算法求带权为2.2.3.3.3.5的最忧二元数并求其权~

过程就是:首先把最小的两个数2、3放在最下面作为左右叶子节点,得出他们的父节点权值5,然后它和剩余里最小的数5做成左右兄弟节点,得出父节点10,以此类推啊,10和7得出17,17和8,得到跟节点25.完成!

哈夫曼树见图。用word随便画的,比较难看。
带权路径长度 (2+3)*3+(5+7+9)*2+12*1=15+42+12=69
其实你可以根据下面的直接求。
哈夫曼树的构造
假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:
(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);
(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
(3)从森林中删除选取的两棵树,并将新树加入森林;
(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树

7/8应该一起作为同一父的叶这样才是最优,权为55

把最小的两个数2、3放在最下面作为左右叶子节点,得出他们的父节点权值5,然后它和剩余里最小的数5做成左右兄弟节点,得出父节点10,以此类推啊,10和7得出17,17和8,得到跟节点25完成。

例如:

先将所有的权值选出最小的两个值,为1,4,这两个的和为5,那么再从5,9,25,36,49中选出两个最小的,为5和9,然后再从14,25,36,49中选出两个最小的,为14,25,依次进行下去。那么就可以得到最优二叉树为:() / \ () 49 / \ () 36 / \ () 25 / \ () 9 / \ 1 4

扩展资料:

所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。

树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明哈夫曼树的WPL是最小的。

参考资料来源:百度百科-哈夫曼树



过程就是:首先把最小的两个数2、3放在最下面作为左右叶子节点,得出他们的父节点权值5,然后它和剩余里最小的数5做成左右兄弟节点,得出父节点10,以此类推啊,10和7得出17,17和8,得到跟节点25.完成!

7/8应该一起作为同一父的叶这样才是最优,权为55


用huffman算法求带权为2,3,5,7,8的最优2元树,要求画出中间过程?_百度...
7\/8应该一起作为同一父的叶这样才是最优,权为55 把最小的两个数2、3放在最下面作为左右叶子节点,得出他们的父节点权值5,然后它和剩余里最小的数5做成左右兄弟节点,得出父节点10,以此类推啊,10和7得出17,17和8,得到跟节点25完成。例如:先将所有的权值选出最小的两个值,为1,4,这两...

哈夫曼树的构造是什么?
哈夫曼树构造:结构化的Huffman算法生成的Huffman树子树都是有序的,所以一般生成Huffman树时都为节点排序,即使这样结果也不唯一。哈夫曼静态编码:它对需要编码的数据进行两遍扫描:第一遍统计原数据中各字符出现的频率,利用得到的频率值创建哈夫曼树,并必须把树的信息保存起来,即把字符0-255(2^8=...

树- 哈夫曼树及其应用 - 最优二叉树(二)
哈夫曼算法模拟演示过程【 参见动画模拟 】( )哈夫曼算法的求精 void CreateHuffmanTree(HuffmanTree T){\/\/构造哈夫曼树 T[m ]为其根结点 int i p p ;InitHuffmanTree(T); \/\/将T初始化 InputWeight(T); \/\/输入叶子权值至T[ n ]的weight域 for(i=n;i <m;i++){ 共进行n-1次合并,新...

哈夫曼编码的发展历史
由于这个算法,学生终于青出于蓝,超过了他那曾经和信息论创立者香农共同研究过类似编码的导师。哈夫曼使用自底向上的方法构建二叉树,避免了次优算法Shannon-Fano编码的最大弊端──自顶向下构建树。1952年,David A. Huffman在麻省理工攻读博士时发表了《一种构建极小多余编码的方法》(A Method for the...

数字图像的无损压缩是指
它和有损数据压缩相对。这种压缩通常压缩比小于有损数据压缩的压缩比。一个很常见的例子是磁盘文件的压缩。根据目前的技术水平,无损压缩算法一般可以把普通文件的数据压缩到原来的1\/2~1\/4。一些常用的无损压缩算法有霍夫曼(Huffman)算法和LZW(Lenpel-Ziv&Welch)压缩算法。

图像压缩编码的发展过程,可以分为哪三个阶段?
图像压缩编码的发展过程介绍如下:图像压缩技术的发展历程经历了多个阶段,以下是其大致的发展历程:无损压缩阶段:早期的图像压缩技术主要集中在无损压缩算法上,即压缩图像文件大小而不损失图像质量。其中最著名的算法是无损预测编码算法,如LZW(Lempel-Ziv-Welch)算法和Huffman编码算法。有损压缩阶段:随着...

哈夫曼算法中频度建树应该用什么排序
(2)哈夫曼算法的简要描述 在上述存储结构上实现的哈夫曼算法可大致描述为(设T的类型为HuffmanTree):(1)初始化 将T[0..m-1]中2n-1个结点里的三个指针均置为空(即置为-1),权值置为0。(2)输人 读人n个叶子的权值存于向量的前n个分量(即T[0..n-1])中。它们是初始森林中n个孤立...

哈夫曼是那个国家的?以及他的介绍
这个大作业促使了Huffman以后算法的诞生。离开MIT后,Huffman来到University of California的计算机系任教,并为此系的学术做出了许多杰出的工作。而他的算法也广泛应用于传真机,图象压缩和计算机安全领域。但是Huffman却从未为此算法申请过专利或其它相关能够为他带来经济利益的东西,他将他全部的精力放在教学上...

数据压缩的可以分为哪几类?各举例说明其中的经典算法。
【答案】:数据压缩有两类基本方法:一种是将相同的或相似的数据或数据特征归类,使用较少的数据量描述原始数据,达到减少数据量的目的,称为无损压缩。第二类方法是有利用人眼的视觉特性有针对性地简化不重要的数据,以减少总的数据量,这种压缩一般为有损压缩。无损压缩编码算法主要包括Huffman编码、算术...

无损压缩算法是什么样的?
该方法用于那些要求重构信号与原始信号完全一致的场合,如文本数据、程序和特殊应用场合的图像数据(如指纹图像、医学图像等)的压缩。这类算法压缩率较低,一般为1/2~1/5。典型的无损压缩算法有:Shanno-Fano编码、Huffman(哈夫曼)编码、算术编码、游程编码、LZW编码等。基于哈夫曼编码原理的压缩算法:哈...

于洪区19376601404: 用Huffman算法求带权为1,4,9,25,36,49的最优二叉树 -
主父邦活胃: 先将所有的权值选出最小的两个值,为1,4,然后这两个的和为5,那么再从5,9,25,36,49中选出两个最小的,为5和9,然后再从14,25,36,49中选出两个最小的,为14,25,依次进行下去.那么就可以得到最优二叉树为:()/ \() 49/ \() 36/ \() 25/ \() 9/ \1 4

于洪区19376601404: 霍夫曼算法求扩充二叉树的带权外部路径长度 -
主父邦活胃: 每行选出最小的两个数相加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.

于洪区19376601404: 数据结构 对于给定的6个实数W={2,3,5,6,9,11},试构造Huffman树;并求出该树的最小带权路径长度WPL.
主父邦活胃: 第一步: 5(注意:这个5并不是题目中给出的实数W中的5,而是下面2跟3的和) 2 3第二步: 10 5 5 2 3第三步: 15 6 9第四步: 21 10 11 5 5 2 3第五步: 36 15 21 6 9 10 11 5 5 2 3最小带权路径长度WPL为:(6+9)*2+5*3+11*2+(2+3)*4=87

于洪区19376601404: 数据结构题:对于给出的一组权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

于洪区19376601404: 一组权(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

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

于洪区19376601404: 带权为2、3、5、7、8、9的最优树T,权W(T)= - 上学吧普法考试
主父邦活胃: 题目的阐述: 以n进制编码方式对一个英文字串中的字符进行编码,每个不同的字符其编码不同.使得由新的编码替代原串后总码长最小,且输入0,1,2,...,n-1构成的数字串后,依照该编码方式可以正确的对译出唯一的英文原串. 如: n=3 英文原...

于洪区19376601404: 哈夫曼译码算法 -
主父邦活胃: C++的 #include#include #include #include ofstream outstuf; #define MAXBIT 50 // 哈夫曼编码的最大长度 #define MAXVALUE 50 // 最大权值 #define MAXLEAF 50 // 哈夫曼树中叶子结点个数 #define MAXNODE MAXLEAF*2-1 //树中结点总数 //...

于洪区19376601404: 数据结构画Huffman树和计算带权路径长度 -
主父邦活胃: 首先选择最小的4,5 得到9 则在{6,7,9,10,12,18}中选出最小的6,7得到13,继续在{9,10,12,13,18}选出最小的两个9,10,最后可以得到的树就是下面的树 62 25 37 12 13 18 19 6 7 9 10 4 5 两个叶子节点加起来就是根节点 这里不能画图 不是很清楚,但是应该也能明白, WPL=(4+5)*4+(6+7+10)*3+(12+18)*2=165 需要代码的话给邮箱,如果问题已解决,请采纳

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