若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为() 解析一下!

作者&投稿:泰洁 (若有异议请与网页底部的电邮联系)
在有N个叶子节点的哈夫曼树中,其节点总数为~

在哈夫曼树(也叫最优树)中,只有两种类型的结点:度为0或N,即最优二叉树中只有度为0或2的结点,最优三叉树中只有度为0或3的结点,所以有2N-1个节点 。

霍夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树。所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数)。
树的路径长度是从树根到每一结点的路径长度之和,记为WPL=(W1*L1+W2*L2+W3*L3+...+Wn*Ln),N个权值Wi(i=1,2,...n)构成一棵有N个叶结点的二叉树,相应的叶结点的路径长度为Li(i=1,2,...n)。可以证明霍夫曼树的WPL是最小的。
扩展资料:
假设有n个权值,则构造出的哈夫曼树有n个叶子结点。 n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:
(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);
(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;
(3)从森林中删除选取的两棵树,并将新树加入森林;
(4)重复(2)、(3)步,直到森林中只剩一棵树为止,该树即为所求得的哈夫曼树。
1、路径和路径长度
在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。
2、结点的权及带权路径长度
若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积。

3、树的带权路径长度
树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL。
参考资料:百度百科---哈夫曼树

正确答案是[(n-1)/(m-1)]上取整

首先说明一点,我们平时一般所说的哈夫曼树是指最优二叉树,也叫做严格二叉树(注意不是完全二叉树),但是哈夫曼树完全不局限于二叉树,也存在于多叉树中,即度为m的哈夫曼树,也叫最优m叉树,严格m叉树(注意不是完全m叉树)。

这种最优m叉树在数据结构中也有应用,比如外部排序中的置换-选择排序法。这种树的典型特点是只有度为0和度为m这两种情况,不存在度大于0,小于m的情况,而我们一般最常接触的就是给你一组数据,让你构造最优m叉树。

但是与最优二叉树不同的是,给你的一组数据不一定恰好能构造出最优m叉树,原因是假设度为0的结点个数为x(也就是叶子结点),度为m的结点个数为y,则存在一个等式x+y=my+1,也就是说x-1能被m-1整除,但是给出你的数据个数(也就是x)不一定能整除啊,怎么办呢?

第一,我们要计算(x-1)%(m-1)是否为0,若为0自然好说,直接构造最优m叉树,若不为0,则需要一些工作了;
第二,假设(x-1)%(m-1)不等于0,怎么办呢?需要给这组数据添上一些数据使其能够整除。添哪些数据呢?又要添几个呢?为了不影响树的构造过程,我们只能够添0,但是添几个合适呢?根据除数m-1和余数,我们不难得到,所添0的个数应为除数和余数的差。这样我们就能够保证总能够构造出最优m叉树。
第三,接下来就需要根据构造最优二叉树的方法来构造最优m叉树,每次选取m个数据,求和后再放入原数据组中(删除那m个数据),继续这一步骤,直到只剩一个数据(根结点)。

用类比的思想,首先哈夫曼树是完全M叉树,每个结点度数要么0,要么m。 设非叶节点数为x则有mx+1=x+n得到x=(n-1)/(m-1)

所以这道题就有错嘛,我估计是想问节点数为m的哈弗曼树中


哈夫曼树一共有多少个结点?
设叶子节点个数为n,度为1的节点个数为m,度为2的节点个数为l.显然易知:一颗二叉树的节点数 = 这个树的度加1(因为每个节点都是前一个节点的度,根节点除外,所以要加1)故有 l + m + n = 2l + m + 1---> n = l + 1由于哈夫曼树没有度为1的节点,在m = 0总节点 = n ...

在有N个叶子节点的哈夫曼树中,其节点总数为()?
最优三叉树中只有度为0或3的结点,所以有2N-1个节点 。给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

怎么给哈夫曼树设置字符以及其频度
一般是设置两个数组,一个数组便是字符,另一个数组表示权值即出现的次数,一一对应即可。我这边有一份C语言的哈夫曼树的相关代码,以前从网上找的 include <stdio.h>#include <stdlib.h>#include <string.h>#define N 100#define M 2*N-1typedef char * HuffmanCode[2*M];\/\/haffman编码typedef...

如何定义哈夫曼树结点的数据结构?与普通二叉树有什么不同?
哈夫曼树的结点数据结构:在哈夫曼树中,每个结点都有以下字段:weight:权值,表示该结点的权重或频率。lchild:指向左子树的指针(如果存在)。rchild:指向右子树的指针(如果存在)。parent:指向双亲结点的指针(如果存在)。与普通二叉树的不同:度限制:哈夫曼树只包含度为 0(叶子结点)和度为 2...

哈夫曼算法中频度建树应该用什么排序
③ 哈夫曼树是严格的二叉树,没有度数为1的分支结点。2.哈夫曼树的存储结构及哈夫曼算法的实现 (1) 哈夫曼树的存储结构 用一个大小为2n-1的向量来存储哈夫曼树中的结点,其存储结构为:define n 100 \/\/叶子数目 define m 2*n-1\/\/树中结点总数 typedef struct { \/\/结点类型 float weight;...

为什么 哈夫曼树的度只能为0或者2 不能为1?
所以这种树为最优二叉树。最优二叉树的度只有0或者2。给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree)。哈夫曼树是带权路径长度最短的树,权值较大的结点离根较近。

哈夫曼树的度只有2和0吗
只有2和0.哈夫曼树是一种二叉树,每个节点最多只能有两个子节点。,哈夫曼树还具有贪心的特点,每次选择权值最小的两个节点进行合并,最终形成一棵带权路径长度最小的二叉树。哈夫曼树的度只能是2或者0,不能取其他值。

在结点树多于1的赫夫曼树中为什么不存在度为1的结点?
由赫夫曼树的构造过程可知,赫夫曼树的每一分支结点都是由两棵子树合并产生的新结点,其度必为2,所以赫夫曼树中不存在度为1的结点。

高度为h的哈夫曼树中,至少有多少个结点?至多有多少个结点?
哈夫曼树度只能为0或2,不存在度为1。至少:考虑每层2个结点(除了根结点),则至少为2h-1个 至多:考虑满二叉树,则至多为 (2^n) -1 应该是这样吧,如有错误,欢迎指正!

设某哈夫曼树中有199个结点,则该哈夫曼树中有()个叶子结点.
根据二叉树的性质:n2 = n0 - 1,列方程组得{n2 = n0 - 1, n0 + n2 = 199},解方程组得 n0 = 100,所以叶子结点有100个。叶子结点是离散数学中的概念。一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称“叶子”。 叶子是指出度为0的结点,又称为终端结点。

荆门市13018775921: 具有m个叶结点的哈夫曼树共有多少个结点? -
彭终川贝: 因为哈夫曼树除了m个叶子结点就是二度结点,边数=结点个数-1=n0+n2-1 边的个数=2*n2,联立方程可知n2=n0-1,故n2=m-1,所以总结点个数为2m-1

荆门市13018775921: 1800题中的疑问,第六章 树15.若度为m的哈夫曼树中,其中叶结点个数为n,则非叶结点个数为(C)A.n - 1 B.[n/m] - 1(不小于它的最小整数) C.[(n - 1)/(m - 1)]... -
彭终川贝:[答案] >>15/46: 实际上存在N叉Huffman树(baidu一下,你就知道),因此这两个题目相矛盾,严格讲46题是错误的,15题可解.另关于46题C选项,二叉树每个节点一定有两棵子树,且有序(区分左右),空子树也是子树. >>50: A选项更合适. ...

荆门市13018775921: 若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为() 哈夫曼树不是最优二叉树,那每个结点度数要么是0,1或2,那这道题目怎么会说“度数... -
彭终川贝:[答案] 首先说明一点,我们平时一般所说的哈夫曼树是指最优二叉树,也叫做严格二叉树(注意不是完全二叉树),但是哈夫曼树完全不局限于二叉树,也存在于多叉树中,即度为m的哈夫曼树,也叫最优m叉树,严格m叉树(注意不是完全m叉...

荆门市13018775921: 若度为m的哈夫曼树中,其叶结点个数为n,则非叶结点的个数为() 解析一下! -
彭终川贝: 用类比的思想,首先哈夫曼树是完全M叉树,每个结点度数要么0,要么m. 设非叶节点数为x则有mx+1=x+n得到x=(n-1)/(m-1)

荆门市13018775921: 具有m个叶子结点的哈夫曼树共有多少个结点 -
彭终川贝: 叶子节点:度为0的节点 哈夫曼树没有度为1的节点 二叉树的性质:度为0的结点个数比度为2的多一个 所以度为2的节点个数为m-1 节点的总数=m+m-1=2m-1

荆门市13018775921: 哈夫曼树的总结点数与叶节点数的关系? -
彭终川贝: 由于哈夫曼树中没有度为1得结点. 只有度为0和度为2得结点. 则一棵有n个叶子结点得哈夫曼树共有2n-1个结点

荆门市13018775921: 设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有 -
彭终川贝: 答案是A 因为Huffman 树是正则二叉树,没有度为1的结点,因此空指针域只会在叶子中出现 每个叶子有2个空指针域,所有一共有2m个空指针域

荆门市13018775921: 一棵有18个叶结点的哈夫曼树,则该树共有多少个非叶 -
彭终川贝: 有18个非叶

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