告诉了一棵完全二叉树的总结点个数,求叶子结点个数怎么计算?谢谢帮助
前九层的结点就有2^9-1=511个
而第九层的结点数是2^(9-1)=256
所以,第十层的叶子结点数是699-511=188个
现在来算第九层的叶子结点个数:
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。
因为第十层有188个,所以应该去掉第九层中的188 / 2=94个
所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个。
扩展资料:
二叉树性质
1、 在非空二叉树中,第i层的结点总数不超过
2、深度为h的二叉树最多有
3、对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
4、具有n个结点的完全二叉树的深度为
5、有N个结点的完全二叉树各结点如果用顺序方式存储,则结点之间有如下关系:
若I为结点编号则 如果I>1,则其父结点的编号为I/2;
如果2*I<=N,则其左孩子(即左子树的根结点)的编号为2*I;若2*I>N,则无左孩子;
如果2*I+1<=N,则其右孩子的结点编号为2*I+1;若2*I+1>N,则无右孩子。
6、给定N个节点,能构成h(N)种不同的二叉树。
h(N)为卡特兰数的第N项。h(n)=C(2*n,n)/(n+1)。
7、设有i个枝点,I为所有枝点的道路长度总和,J为叶的道路长度总和J=I+2i
参考资料来源:百度百科-二叉树
根结点的深度为1:
1、二叉树的第i层至多有2^(i − 1)个结点
2、深度为k的二叉树至多有2^k − 1个结点
因为2^9-1 < 699 < 2^10-1
所以这个完全二叉树的深度是10,前9层是一个满二叉树。
因此,前九层的结点就有2^9-1=511个
而第九层的结点数是2^(9-1)=256
所以,第十层的叶子结点数是699-511=188个
现在来算第九层的叶子结点个数:
由于第十层的叶子结点是从第九层延伸的,所以应该去掉第九层中还有子树的结点。
因为第十层有188个,所以应该去掉第九层中的188 / 2=94个
所以,第九层的叶子结点个数是256-94=162,加上第十层有188个,最后结果是350个。
扩展资料
一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。
具有n个节点的完全二叉树的深度为floor(log2n)+1。深度为k的完全二叉树,至少有2k-1个叶子节点,至多有2k-1个节点。
参考资料来源:百度百科-二叉树
完全二叉树有一个性质: 具有n个结点的完全二叉树的深度为log2n(2是下标)+1。
根据这个性质,就可以求得完全二叉树的深度为10
10层满二叉树的总结点数为1023,最后一层的结点数应该是2的9次方为512,所以肯定699个结点肯定不是满二叉树。。。叶子节点出现在最后两层上。。。
最后一层叶子结点个数为:699-(1023-512)=188
倒数第二层的叶子节点数为: (512-188)/2=162
叶子总数应该是:188+162 = 250
不确定有没有算对。。。大概思路应该是这样的。。。希望对你有帮助。。。。仍有问题可以HI我。。。。
假设n0是度为0的结点总数(即叶子结点数),n1是度为1的结点总数,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 ,就可根据完全二叉树的结点总数计算出叶子结点数。
因此叶子结点数是(699+1)/2=350
在任意一棵二叉树中,叶子结点比度为2的结点多一个,完全二叉树中最多有一个度为1的结点,所以有如下结论:
设一棵完全二叉树有N个结点.如果N为偶数,则在该二叉树中有N/2个叶子结点以及N/2-1个度为2的结点,还有一个是度为1的结点,如果N为奇数,则在该二叉树中有(N/2)+1个叶子结点以及(N/2)个度为2的结点,没有度为1的结点~