画一棵最优二叉树(赫夫曼树)

作者&投稿:任桦 (若有异议请与网页底部的电邮联系)
数据结构问题,最优二叉树(赫夫曼树)有要求每个左孩子必须大于右孩子吗?谢谢!~

不需要,也可以每个左孩子小于每个右孩子,左面大或右面大都无所谓,但必须统一,要么左边大于右边,要么右边大于左边,否则在霍夫曼树的一些应用中会出错

2+5=7
7+6=13
13+8=21
13+19=31
21+31=52
52是根,上面的计算过程是树的枝

下图是赫夫曼树(左孩子结点不大于右孩子结点):



对T(A-30,B-50,C-60, D-20,E-78,F-45,G-190,H-180,I-196,J-125)
构造方法:
(1)在T集合中选取两个值最小的结点,作为左子树和右子树,构建一颗树,其根结点为两者之和(代表该结点的值)。
(2)从T集合中删除已经选取的两个结点,加入新构建的树(结点)。
(3)重复以上步骤,直至T中只有一个结点(一棵树),即赫夫曼树。
基于以上,楼上答案是正确的。由于T中可能存在值相同的结点,故答案不是唯一的。


什么是哈夫曼树呢
哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*...

二叉树实现符号不等长高效编码
哈夫曼树(最优二叉树):就是将二叉树的WPL降到最低(WPL最小的二叉树)。当用n个结点(都做叶子结点且都有各自的权值)试图构建一棵树时,如果构建的这棵树的带权路径长度最小,称这棵树为“最优二叉树”,有时也叫“赫夫曼树”或者“哈夫曼树”。在构建哈弗曼树时,要使树的带权路径长度...

数据结构——哈夫曼树(Huffman Tree)
哈夫曼树是一种特殊的二叉树,它在给定N个权值的叶子节点中构造,以达到最小的带权路径长度,这种树被称为最优二叉树,或者哈夫曼树。其基本概念是,权值较大的节点离根节点更近,从而使得整个树的总路径长度达到最小。“路径和路径长度”指的是从一个节点到其子节点或孙节点的路径,路径的分支数即...

初步认识哈夫曼树
(6)树的带权路径长度:树中所有叶子结点的带权路径长度之和。例图:2*7+2*5+2*2+2*4=36 (7)赫夫曼树(Huffman):最优二叉树,带权路径长度最小的树 哈夫曼树的特点 –权值大的结点到根结点的路径长度短;–权值小的结点到根结点的路径长度长。Ø哈夫曼编码树中没有度为1的结点...

霍夫曼算法
霍夫曼算法的步骤:从各个节点中找出最小的两个节点,给它们建一个父节点,值为这两个节点之和。然后从节点序列中去除这两个节点,加入它们的父节点到序列中。 重复上面两个步骤,直到节点序列中只剩下唯一一个节点。这时一棵最优二叉树就建成,它的根就是剩下的这个节点。霍夫曼计算法是不附利息破产...

如何求哈夫曼树
给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree)。‍假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n...

最优二叉树算法简介
在软件开发中,算法的效率是一个关键评估指标。它直接关乎到程序执行的时间效率。最优二叉树算法,以其高效的执行时间,成为优化设计的重要手段。这种算法的核心是通过霍夫曼树的构建来实现的,霍夫曼树是一种特殊的二叉树,其特性使得在解决某些问题时,能够找到执行效率最优的解决方案。霍夫曼树的构造过程...

如果给定权值总数有N个,则其哈夫曼树的结点总数为多少
给定权值总数有N个,则其哈夫曼树的结点总数为2*N-1;给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。哈夫曼树只有叶子结点和度为2的结点,无度...

下有关霍夫曼树的说法中,错误的是( )
【答案】:C 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。霍夫曼树可以用来进行通信电文的编码和解码。利用哈夫曼树求得的用于通信的二进制编码称为哈夫曼...

到底什么是哈夫曼树啊,求例子
哈夫曼树是给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。例子:1、将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);2、...

河曲县15250364553: 最优二叉树算法的基本概念 -
圭伯骨痨: 最优二叉树,也称哈夫曼(Haffman)树,是指对于一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树.那么什么是二叉树的带权路径长度呢?在前面我们介绍过路径和结点的路径长度的概念,而二叉树的路径长度则是...

河曲县15250364553: 画一颗权为3.4.5.6.7.8.9的最优2叉树 -
圭伯骨痨: 最优二叉树,也就是赫夫曼树是把带权值最小的两个数,相加得到它的双亲结点.3513 2210 125 73 41 21,2,3,4,5,6,7,8,9,101、先在序列里找权值两个最小的根结点.选1,2组成一棵二叉数.然后,把1,2去掉.用根结点的权值3加入原序列....

河曲县15250364553: 哈夫曼编码原理 -
圭伯骨痨: 原发布者:a2420092945 Huffman树及其应用一、最优二叉树(霍夫曼树)预备知识:若干术语路d径:由一结点到另一结点间的分支所构成a→e的路径长度=2beacfg路径长度:路径上的分支数目树长度=10树的路径长度:从树根到每一结点的...

河曲县15250364553: 赫夫曼树的建立 -
圭伯骨痨: 给你一个全功能的代码,关于,hufman tree的,你要哪一段就自己节选:/* Note:Your choice is C IDE */#include "stdio.h"#include "stdlib.h"#define N 20/*叶子最大结点数*/ typedef struct { int weight;/*假设叶子权值为整型*/ int lchild,rchild,...

河曲县15250364553: 关于 赫夫曼树?
圭伯骨痨: 根据构造最优二叉树的算法,总是取最前面的两个较小节点构成子树. 所以赫夫曼树(如图)

河曲县15250364553: 简述哈夫曼树的性质.
圭伯骨痨: 哈 夫 曼 树 2.9 二叉树的应用2.9.1 哈夫曼树及应用 哈夫曼树又称最优树(二叉树),是一类带权路径最短的树.构造这种树的算法最早是由哈夫曼(Huffman)1952年提出,这种树在信息检索中很有用.结点之间的路径长度:从一个结点到另一...

河曲县15250364553: 哈夫曼树和哈夫曼编码 -
圭伯骨痨: 给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree).哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近. 哈夫曼树(霍夫曼树)又称为最...

河曲县15250364553: 哈夫曼树的构建过程 -
圭伯骨痨: 哈夫曼树: 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree).哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近. 哈夫曼树的构造: 假...

河曲县15250364553: 赫夫曼树是否唯一 -
圭伯骨痨: 不唯一,因为没有限定左右子树,并且有权值重复时,可能树的高度都不唯一,唯一的只是带权路径长度之和最小. 给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为...

河曲县15250364553: 画一棵二叉树 -
圭伯骨痨: 试 首先后序倒数第3个肯定是G而不是C,你打错了吧 后序最后一个是A,所以肯定A是根.看中序,A左边的是A的左子树,BDCE构成.A右边的是A的右子树,FHG构成.分别研究左子树和右子树,方法就是试,根据中序画一个然后对照后序,如果不对就再换可能性.最后结果: A是根,A的左儿子B,B没有左儿子,B右儿子是C,C的左儿子D,C的右儿子E. A的右儿子F ,F左儿子G,F右儿子G.你画出来看看对不对

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