如果给定权值总数有N个,则其哈夫曼树的结点总数为多少

作者&投稿:闳廖 (若有异议请与网页底部的电邮联系)
哈夫曼问题:如果给定权值总数有N个,则其哈夫曼树的结点总数为多少~

2*N-1

哈夫曼树只有叶子结点和度为2的结点,无度为1的结点。在只含度为2和叶子结点的树中度为2的结点数是叶子-1。权值点度为0的点n,则度为2的结点数为n-1

给定权值总数有N个,则其哈夫曼树的结点总数为2*N-1;

给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

哈夫曼树只有叶子结点和度为2的结点,无度为1的结点。在只含度为2和叶子结点的树中度为2的结点数是叶子-1。权值点度为0的点n,则度为2的结点数为n-1。

扩展资料:

在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。

若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。

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



  给定权值总数有N个,则其哈夫曼树的结点总数为2*N-1;

  给定n个权值作为n的叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

简单正解如下
任何完全二叉树度数为0的结点个数等于度数为2的结点个数加一
huffman树是完全二叉树,给定权值全是该树的叶子结点。
所以咯,2n-1就是该树总结点数

我再说一遍
2*N-1


给定权值集合{1, 3, 6, 7, 11, 12, 16},构造相应的哈夫曼树并计算带权...
n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1)将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2)在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3)从森林中删除选取的两棵树...

给定权值{2,3,4,7,8,9},构造赫夫曼树。
} for(i = 0; i < n; i++)w[i].add = (unsigned int)((double)w[i].add \/ (double)all * 100.0);} void MakeHuffmanTree(HuffmanTree &root, weight *w){ int cmp(const void *, const void *);HTNode *p[n], *t;int m = n;for(int i = 0; i < n; i ++){ ...

给定权值7,6,3,32,5,26,12,9,构造相应的哈夫曼树,并计算其带权路径长度...
哈夫曼树是:100 \/ \\ 42 58 \/ \\ \/ \\ 17 25 26 32 \/ \\ \/ \\ 8 9 12 13 \/ \\ \/ \\ 3 5 6 7 树的带权路径长度为WPL = (3+5 + 6 +7)*4 + (9+ 12)*3 + (26+32)*2 = 263 ...

BP神经网络中初始权值随机生成与给定确定数对最后连接权值有什么不同...
BP网络多次训练得到的结果是不同的,原因就是权值的伪随机生成.权值给定值和伪随机数有可能产生不同影响,最终得到的权值可能会改变.原因是这样的,BP神经网络权值的迭代是局部寻优,往往找到的是极小值.给一个初值以后,如果恰好收敛的极小值是最小值,效果就好一些,反之,效果就差一些.当然,权值向量的分量...

请教BP神经网络,给定权值阈值,输出不正确问题
楼主你好,purelin是线性函数,问题是在阈值的加入,若是你不加入阈值,你试下结果!

背包问题
等很多种。如果仍然按照解01背包时的思路,令f[v]表示前i种物品恰放入一个容量为v的背包的最大权值。仍然可以按照每种物品不同的策略写出状态转移方程,像这样:f[v]=max{f[v-k*c]+k*w|0<=k*c<= v}。这跟01背包问题一样有O(N*V)个状态需要求解,但求解每个状态的时间则不是常数了,求解状态f[v]...

出钱求c语言编程高手 题目:有n个点,坐标(x1,y1)...(xn,yn),这n个点...
下面给出一个程序,其中以权值差的绝对值取代“权值差”。假设这n个点的横坐标、纵坐标、权值分别存放在数组double X[n], Y[n], P[n]中,现用一个函数来求所需数据。所需函数及一个调用实例如下:include<stdio.h> include<math.h> double GetResult(double *X, double *Y, double *P, ...

第11届全国少年信息学奥林匹克联赛初赛试题
第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。 接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。 输出: 输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出"0"。 输入样例: 3 7 232 124 ...

数据结构的问题~
A n(n-1)\/2 B n2\/2 C n(n-1)\/2 D n 二、简答题 1 数据的逻辑结构有哪几种?常用的存储有哪几种? 2 举一个数据结构的例子,叙述其逻辑结构、存储结构和运算三方面的内容。 3 什么叫算法?它有哪些特性 4 有下列几种用二元组表示的数据结构,画出它们分别对应的逻辑结构图,并指出它们分别以属于何种...

如何将一非负十进制数转换成n(2<=n<=35)进制?
n进制就是逢n进1。n进制数采用 0~n-1这n数来表达一个数。n进制数第0位的权值为n的0次方,第1位权值为n的1次方,第2位权值为n的2次方……把要转换的数,除以n,得到商和余数,将商继续除以n,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。比如:十进制6,如果将它转换成二...

容县15383855716: 设定权值的总数为N个,其哈夫曼树的结点总数是2n - 1,不懂为什么?我想知道具体解法 -
门邦恩必:[答案] 第1次必定是2个叶子组成二叉树,产生1新结点,接下来有2种情况:1.此新结点与原剩下的叶子再组成二叉树又产生1新结点,这样就只有第1次时由2个叶子产生1新结点,以后每次由1叶子与新结点产生新结点,故n个叶子共有2n-1个...

容县15383855716: 数据结构题目问:给定N个权值,则构造的哈夫曼树中的结点总数为多少个,并附上相关的知识点, -
门邦恩必:[答案] 算上N个叶子的话一共2N-1个.参见定理:0度结点(即叶子)数比2度结点数多1.另外Huffman树中没有1度结点.

容县15383855716: 最优二叉树中权值最小的两个节点一定互为兄弟节点吗 -
门邦恩必: 给定权值总数有N个,则其哈夫曼树的结点总数为2*N-1;

容县15383855716: 有n个权值,建立哈夫曼树后,哈夫曼树的结点最多有多少个
门邦恩必: 最小的两个值合起来还是最小的情况,生成的结点最多. 每次合成,生成一个结点,即共有n-1+n=2n-1个.

容县15383855716: 哈夫曼树怎样构造编码? -
门邦恩必: 先编造哈夫曼树,哈夫曼树构造规则: 假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) ...

容县15383855716: 怎样构造合适的哈夫曼树? -
门邦恩必: 来自百度百科:哈夫曼树构造方法: 假设有n个权值,则构造出的哈夫曼树有n个叶子结点. n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为: (1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点); (2) 在森...

容县15383855716: 到底什么是哈夫曼树啊,求例子 -
门邦恩必: 哈夫曼树是给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree).哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近. 例子: 1、将w...

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