二叉树
二叉树的三种遍历
二叉树的有关计算
1.二叉树的深度和层数其实是一样的。
2.任意一棵树的总结点数等于总分支数+1
3.叶子结点也称叶子,度为0的结点。
4.一个深度为n的满二叉树的总结点数为 (2^(n-1))-1(其实得出这个结论画个图就知道了,不难)
5.深度为h的完全二叉树至少有2^(h-1)个结点,最多有(2^h)-1个结点。
相关题目:
1.一棵二叉树第六层(根结点为第一层)的结点数最多为?
其实这道题很简单,就是2^5=32
2.某二叉树中度为2的结点有18个,则该二叉树中有多少个叶子结点?
根据总结点数=总分支数+1,设叶子有n个,则有
18 + n = 18*2 + 1
n = 19
3.设一棵完全二叉树共有199个结点,那么该二叉树共有个分支结点?
思路就是先求出这个完全二叉树的叶子数,然后用总结点数减去叶子数就是分支结点的数目了。
因为有 (2^7) - 1<199<=(2^8)-1
所以得深度为8,前7层为满二叉树,所以前7层的总结点数为(2^7) - 1 = 127 ,第7层的结点数为 2^6 = 64
则最后一层的叶子为 199 - 127 = 72 ,所以第7层的叶子数为 64 - 72/2 = 28
所以总叶子数为 72+28 = 100
分支数为 199 -100 = 99
4.在深度为7的二叉树中,最多有多少个叶结点?(注意这里问的是叶结点,而不是结点数,如果是结点数的话答案是(2^6)-1 )
这种题目和例子1差不多,为 2^6
5.设一棵完全二叉树共有127个结点,那么该二叉树是满二叉树吗?
因为 一个深度为n的满二叉树的总结点数为 2^(n-1)-1
则设 2^(n-1)-1 = 127
n = 8 ,所以这也是满二叉树。
6.具有53个结点的完全二叉树的深度为?
因为一个二叉树的结点数必然不会超过深度一样的满二叉树的结点数,所以有
(2^5)-1<53<=(2^6)-1
所以答案为6
7.设一棵完全二叉树共有700个结点,则在该二叉树中有多少个叶子结点?
从第五题延伸出来的题目,由例6的思路得, (2^9)-1<700<=(2^10) - 1
所以得这棵二叉树前面9层是满二叉树,则得前9层的总结点数为 (2^9)-1 = 512 -1 =511
则剩下来的结点数就是最后一层的结点数,为 700 - 511 = 189 ,把他凑成偶数为190,则也就是说,
最后一层是从第九层中 190/2= 95个结点延伸出来的,所以第九层失去了95个叶子,又因为第九层的
结点数为 2^8 = 256,则第九层的叶子数为 256 - 95,则所有的结点数为256-95 +189 =350