1 / 9
文档名称:

二叉树节点计算法方法.docx

格式:docx   大小:16KB   页数:9页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

二叉树节点计算法方法.docx

上传人:maritime_4 2022/6/19 文件大小:16 KB

下载得到文件列表

二叉树节点计算法方法.docx

相关文档

文档介绍

文档介绍:1・6树与二叉树
树是〜种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结 点只有〜个,称为树的根结点,简称树的根。每〜个结点可以有多个 后件,称为该结点的子结点。没有后件点
总数,n2是度为2的结点总数,由二叉树的性质可知:n0 = n2 + 1, 则n= n0 + n1 + n2 (其中n为完全二叉树的结点总数),由上述公 式把n2消去得:n= 2n0+n1-1,由于完全二叉树中度为1的结点数 只有两种可能0或1,由此得到n0=(n + 1)/2或n0 = n/2,合并 成一个公式:n0 = ?(n + 1)/2 ?,就可根据完全二叉树的结点总数计 算出叶子结点数。
或者
根据二叉树的性质:对于一棵非空的二叉树,如果叶子节点数为n0,度 为2的结点数为n2,则no=n2+1.
根据完全二叉树的定义可得:在完全二叉树中度为1的结点n1只能取 两种情况,要么为0,要么为1.
所以:n0+n1+n2 = 700
n0=n2+1;
2n0=701-n1;
因为结点数为整数,所以n1 = 1,no=350
或者
完全二叉树的定义:若设二叉树的高度为h,除第h层外,其它各 层(1〜h-1)的结点数都达到最大个数,第h层从右向左连续缺若干 结点,这就是完全二叉树。
可以算出,这棵二叉树共十层,1-9层的节点个数为2人9-1 = 511个, 所以最后一层的节点个数为700-511 = 189个,189div2=95,那么倒数 第二层的叶结点个数即是
2人(9-1)-95 = 161个
所以所有的叶结点个数即为:189+161 = 350个
问1、 深度为m的满二叉树有几个结点?
2、设二叉树根结点的层次为0,对含有100个根结点的二叉树,可 能的景小树身为多少?怎么计算?
@最佳答案
深度为m的满二叉树有2人m-1个结点.
因为满二叉树的定义为:一颗深度为k且有2人k-1个结点的二叉树称 为满二叉树.
若要树深为最小,显然要使除最后一层外的每一层都有尽可能多的 结点,即要二叉树为完全二叉树.
由二叉树的一个重要性质:具有n个结点的完全二叉树的深度为 [log2n]+1.(这是在才艮节点层次为1时,若为0,将+1去掉即可)
log2n是以2为底n的对数
[log2n]为不大于log2n的最大整数
可知,含有100个(板)结点的二叉树,(应该没"板"字吧)
可能的最小树深为[log2 100 ]+1
二叉树根结点的层次为0时,可能的最小树深为]log2 100 ]
即为6.
可以这样计算:确定最小树深当且仅当二叉树为完全二叉树时出现,设 深度为k,(此时设二叉树板结点的层次为0)有:
2八0+2八1+2 2+...+2八(k-1)<100=<2八0+2V+...+2*
即 2*-1<100=<2^(k+1)-1
或2^k=<100<2人(k+1) (上下两式是相等的)
其中2八k为完全二叉树的第k层的最多结点个数
解得 k=<log2 100<k+1
即 k=[log2 100]=6
某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访
问顺序是dgbaechf,则后序遍历的结点访问顺序是(gdbehfca)
这个