二叉树每个节点有一个权值,给定一棵二叉树,求权值和最大的值

作者&投稿:字喻 (若有异议请与网页底部的电邮联系)
最优二叉树求权值~

权值就是指的一个节点的权重,比如把二叉树应用在编码中,权重就可以理解为码出现的概率。
树的带权路径长度=所有叶子节点带权路径长度之和,即所有叶子节点的权值乘以该叶子节点所在的层次(第一层为0)之和。

最优二叉树,也称哈夫曼(Haffman)树,是指对于一组带有确定权值的叶结点,构造的具有最小带权路径长度的二叉树。那么什么是二叉树的带权路径长度呢?在前面我们介绍过路径和结点的路径长度的概念,而二叉树的路径长度则是指由根结点到所有叶结点的路径长度之和。如果二叉树中的叶结点都具有一定的权值,则可将这一概念加以推广。设二叉树具有n个带权值的叶结点,那么从根结点到各个叶结点的路径长度与相应结点权值的乘积之和叫做二叉树的带权路径长度,记为:WPL= Wk·Lk其中Wk为第k个叶结点的权值,Lk 为第k个叶结点的路径长度。如图7.2所示的二叉树,它的带权路径长度值WPL=2×2+4×2+5×2+3×2=28。在给定一组具有确定权值的叶结点,可以构造出不同的带权二叉树。例如,给出4个叶结点,设其权值分别为1,3,5,7,我们可以构造出形状不同的多个二叉树。这些形状不同的二叉树的带权路径长度将各不相同。图7.3给出了其中5个不同形状的二叉树。这五棵树的带权路径长度分别为:(a)WPL=1×2+3×2+5×2+7×2=32(b)WPL=1×3+3×3+5×2+7×1=29(c)WPL=1×2+3×3+5×3+7×1=33(d)WPL=7×3+5×3+3×2+1×1=43(e)WPL=7×1+5×2+3×3+1×3=29最优二叉树算法 最优二叉树算法由此可见,由相同权值的一组叶子结点所构成的二叉树有不同的形态和不同的带权路径长度,那么如何找到带权路径长度最小的二叉树(即哈夫曼树)呢?根据哈夫曼树的定义,一棵二叉树要使其WPL值最小,必须使权值越大的叶结点越靠近根结点,而权值越小的叶结点越远离根结点。哈夫曼(Haffman)依据这一特点于1952年提出了一种方法,这种方法的基本思想是:(1)由给定的n个权值{W1,W2,…,Wn}构造n棵只有一个叶结点的二叉树,从而得到一个二叉树的集合F={T1,T2,…,Tn};(2)在F中选取根结点的权值最小和次小的两棵二叉树作为左、右子树构造一棵新的二叉树,这棵新的二叉树根结点的权值为其左、右子树根结点权值之和;(3)在集合F中删除作为左、右子树的两棵二叉树,并将新建立的二叉树加入到集合F中;(4)重复(2)(3)两步,当F中只剩下一棵二叉树时,这棵二叉树便是所要建立的哈夫曼树。

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

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

扩展资料

二叉树中的权值就是对叶子结点赋予的一个有意义的数量值。

一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。

具有n个节点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子节点,至多有2k-1个节点。



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

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

题目没有描述清楚,无法作答。


什么情况下一颗m叉树只有一个根节点?
若根结点不是叶子结点,则至少有2个孩子(特殊情况:没有孩子的根结点,即根结点为叶子结点,整棵树只有一个根节点);所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息(可以看做是外部接点或查询失败的接点,实际上这些结点不存在,指向这些结点的指针都为null);(读者反馈@冷岳:这里有错...

某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根...
【答案】:D 根据二叉树的基本性质3:在任意一棵二叉树中,度为0的叶子节点总比度为2的节点多一个,所以本题中度为2的节点为1-1=0个,所以可以知道本题目中的二叉树的每一个节点都有一个分支,所以共7个节点共7层,即深度为7。

二叉树中,度为几的结点为1个结点?
度=节点总数-1。在树中,每个节点有多少条边出去,该节点的度就为多少。也就是说,一条边贡献一个度。而树中,边的条数是节点数减去1。计算节点数一般的方法是 n=n0+n1+n2+... 所以度和节点的关系就是,度=节点总数-1 n为奇数时,完全二叉树中没有度为1的节点:我们可以这样看,完全二...

计算机二级中的根节点是什么
在计算机科学中,二叉树是每个节点较多有两个子树的树结构。有根二叉树还要满足根结点的度不大于2。根结点是树的一个组成部分,也叫树根。所有非空的二叉树中,都有且仅有一个根结点。它是同一棵树中除本身外所有结点的祖先,没有父结点。根结点的深度为1。

某二叉树共有12个结点,其中叶子结点只有一个。则该二叉树的深度为(根...
二叉树的深度为12。因为叶子节点为1个,按二叉树理论得出(任意一棵二叉树中度为0的节点总是比度为2的节点多一个),故得出此二叉树度为2的节点为0个。12(总节点)-1(度为0)- 0(度为2)=11(度为1)。故证明此二叉树每层只有1个节点,总共12层。一棵深度为k,且有2^k-1个节点...

...是什么意思?比如一个小题目,叶子节点(度为0)有1个,度为1的节点有11...
树的深度:树中最大的结点层。如 o 深度为2 \/ \\ o o 关于 叶子节点(度为0)有1个,度为1的节点有11个,度为2的节点为0,怎么知道该二叉树的深度为12?这里叶子节点只有一个,其他的为度为1的结点,该二叉树每层只有1个结点,如下面二叉树 o \\ o \\ o \/ o \\ o \/ o ...

一个二叉树的所有结点中,共有多少个度为1的结点?
首先,要知道在完全二叉树中有一个定理:当有0个度为1的结点,该二叉树的总结点数为奇数,有1个度为1的结点,该二叉树的总结点数为偶数。在该题中,总节点数为1001,是奇数。所以可知该完全二叉树中有0个度为1的结点。n表示总节点数 n1表示度为1的结点 n2表示度为2的结点 n0表示度为0的结...

一棵二叉树有几个分支结点?
1、二叉树:在计算机科学中,二叉树是每个结点最多有两个子树的树结构。2、度:一个节点的子树数目,如果有一个子树那么度为1,如果没有则度为零(叶子节点),如果度为2就是有两个子树。计算常用公式 设二叉树度为1节点个数为N1,度为2节点个数为N2,度为0节点个数为N0,总结点数为S。则...

一棵有n个点儿的二叉树,它的空指针数量是多少?
除根节点外,每个节点都有且仅有一个射向自己的分支(在二叉链表中即为指针),所以N个节点的二叉树,需要N-1个指针域,空余N+1个 n个节点则有2n个链域,除了根节点没有被lchild和rchild指向,其余的节点必然会被指到.所以空链域公有2n-(n-1)=n+1;非空链域有2n-(n+1)=n-1;在一棵二叉...

为什么度为0的结点总是比度为2的结点多一个..快来解救我吧。。_百度...
因为在二叉树中,所有结点的度均小于或等于2,所以结点总数为:n=n0+n1+n2 (1)再查看一下分支数。在二叉树中,除根结点之外,每个结点都有一个从上向下的分支指向,所以,总的结点个数n与分支数B之间的关系为:n=B+1。又因为在二叉树中,度为1的结点产生1个分支,度为2的结点产生2个分支...

青阳县18232274641: 有关构造哈夫曼树的问题 -
商彦帅先: 1. 根据给定的n个权值{w1,w2,…wn}构成n棵二叉树的集合F={T1,T2,..,Tn},其中每棵二叉树Ti中只有一个带权wi的根结点,左右子树均空. 2. 在F中选择两棵根结点权值最小的树作为左右子树构造一棵新的二叉树,且置新的二叉树的根结点的权值...

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

青阳县18232274641: 给定一个二叉树,每个节点有一个值,这些值互不相同,问值x和值y是不是兄弟结点 -
商彦帅先: 创建二叉树,请输入整数序列: 1 2 4 0 0 5 0 0 3 6 8 0 0 0 7 0 0 请输入x y (x等于0表示退出): 4 5 值x和值y是兄弟结点.请输入x y (x等于0表示退出): 4 6 值x和值y不是兄弟结点.扩展二叉树示意图(0表示空结点): 1 / \ 2 3 / \ / \ 4 5 6 7/ \ / \ / \ / ...

青阳县18232274641: 哈夫曼树问题 -
商彦帅先:[答案] 给定n个权值作为n个叶子结点,构造一棵二叉树,若带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman tree).

青阳县18232274641: 给定一组权值,可以唯一构造出一棵哈夫曼树ma? -
商彦帅先: 不可以.因为没有限定左右子树,并且有权值重复时,可能树的高度都不唯一,唯一的只是 带权路径长度之和最小.哈夫曼树(霍夫曼树)又称为最优树. 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径.通路中分支的数目称为路径长度.若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1. 2、结点的权及带权路径长度 若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权.结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积. 3、树的带权路径长度 树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL.

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

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

青阳县18232274641: 怎么求带权1,2,3,4,5,6,7,8,9,10的最优二叉树 -
商彦帅先: 1,2,3,4,5,6,7,8,9,10 1、先在序列里找权值两个最小的根结点.选1,2组成一棵二叉数. 然后,把1,2去掉.用根结点的权值3加入原序列.3,3,4,5,6,7,8,9,10 2、在新的序列中找权值两个最小的根结点.选3,3组成一棵二叉数. 然后,把3.3去掉.用...

青阳县18232274641: 叶子结点带权的二叉树是什么意思(注:树结点间的边相关的数叫做权) 这句话怎么理解 -
商彦帅先: 你说的是哈夫曼树吧?树的每个节点数据域data可以放一个特定的数来代表它的值,可以叫做权值. 以下来自百科: 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或子孙结点之间的通路,称为路径.通路中分支的数目称为路径长度.若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1. 2、结点的权及带权路径长度 若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权.结点的带权路径长度为:从根结点到该结点之间的路径长度与该结点的权的乘积. 3、树的带权路径长度 树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPL.

青阳县18232274641: 霍夫曼算法的详细思路及解释
商彦帅先: 霍夫曼树: 带权路径长度达到最小的扩充二叉树即为霍夫曼树. 在霍夫曼树中,权值大的结点离根最近. 霍夫曼算法 (1) 由给定的n个权值{w0, w1, w2, …, wn-1},构造具有n棵扩充二叉树的森林F = {T0, T1, T2, …, Tn-1},其中每一棵扩充二叉树Ti只有一个带有权值wi的根结点,其左、右子树均为空. (2) 重复以下步骤, 直到F中仅剩下一棵树为止: ① 在F中选取两棵根结点的权值最小的扩充二叉树, 做为左、右子树构造一棵新的二叉树.置新的二叉树的根结点的权值为其左、右子树上根结点的权值之和. ② 在F中删去这两棵二叉树. ③ 把新的二叉树加入F.

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