选择特殊符号
选择搜索类型
请输入搜索
二叉树在计算机科学中,二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆。二叉...
设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为() A12 B13 C14 D15
因为叶子节点与度为2的结点的关系是:n0=n2+1;因为 n0=3,所以 n2=2;总的结点数:n=n0+n1+n2=3+8+2=13希望能帮助你
方法如下:
一种基于有序二叉树的变量池的设计和应用
分层模式在软件开发中有着广泛的应用,必然使各层之间产生频繁的数据交互,从而导致软件性能大大下降。针对上述问题,本文提出一种基于有序二叉树的变量池的解决方案,软件的配置信息以及各层之间的交互数据保存在变量池中,对变量的所有操作都基于变量池,通过变量池的使用,既方便了各层之间数据交互,也简化了各层之间的接口设计。基于该方案,本文最后实现了一个银行自助终端系统。
基于模糊二叉树模型的高速公路投资项目价值评估
高速公路项目投资价值评价是一个非常复杂的问题,而传统的评价方法大多依赖于对未来变量的估计,而这种估计大多具有模糊性。针对高速公路项目投资的特点,深入分析高速公路项目评价中的不确定性因素,利用模糊数表示未来收入的上升和下降幅度,进而建立模糊二叉树模型。实证分析表明投资者可以通过不断调整高速公路未来收入变化的模糊数的左右边界等变量,逐步调整其对未来收入的变化预期,从而合理估计高速公路投资项目的价值。
是程序算法中的一种算法模式。
在二叉树中出现空的子树(包括树叶)上增加空的树叶,使其成为满二叉树的二叉树称之为扩充二叉树。
最优二叉树,也称哈夫曼(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中只剩下一棵二叉树时,这棵二叉树便是所要建立的哈夫曼树。
1
/ \
2 3
\ /
4 5 是均衡二叉树,因为它去掉叶结点及相应的树枝后,
变成了:
1
/ \
2 3 ,这是一个二叉树。
1
/ \
2 3
而 \ / \ 则不是,因为它去掉叶结点及相应的树枝后,
4 5 6
/
7
变成了:
1
/ \
2 3
\
4
很显然,这并不是一个完全二叉树。