问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

二叉树的性质总结(含讲解/应用习题)

创作时间:
作者:
@小白创作中心

二叉树的性质总结(含讲解/应用习题)

引用
CSDN
1.
https://m.blog.csdn.net/2301_80636143/article/details/137580446

在深入探讨二叉树的性质之前,我们需要先了解一些基本的树的概念和术语。

二叉树的基本性质

1. 第k层的最大节点数

若规定根节点的层数是1,则第k层最大节点数为 (2^{(k-1)})。

2. 一个树的总节点数

如果规定根节点为树的第一层,那么深度为k的树的总结点数为 (2^k - 1)。

3. 叶子节点与度为2的节点的关系

对于任意一颗二叉树,如果叶子节点数为a,度为2的节点数为b,那么一定有:a = b + 1。也就是说,度为0的节点永远比度为2的节点多一个。

4. 完全二叉树的深度计算

具有n个结点的完全二叉树的深度k为 (\lceil \log_2(n+1) \rceil)(向上取整)。

公式推导理解

为了方便记忆,我们可以将求完全二叉树深度的问题简化为求满二叉树的深度。以一个深度为4的完全二叉树为例:

根据性质3,我们知道:

  • 深度k = 4
  • 总节点数n = (2^k - 1 = 17)

将公式变形:
[2^k = n + 1]

使用对数知识求深度k:
[k = \log_2(n+1)]

这个公式只能求出满二叉树的深度。对于非满的完全二叉树,例如在上述树中添加一个节点使其深度变为5:
此时节点数变为18,带入公式:
[k = \log_2(19)]

显然,k是一个非整数且大于4,因此需要向上取整:
[深度 = \lceil 4 + 1 \rceil = 5]

5. 双亲节点和左右孩子节点的求法(数组存储方式)

对于具有n个结点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为i的结点有:

  • 若i > 0,双亲节点的序号为 (\frac{i-1}{2})
  • 若i == 0,则该节点为根节点,没有双亲节点
  • 若2i+1 < n,左孩子节点的序号为2i+1,否则第i个节点没有子节点
  • 若2i+2 < n,右孩子节点的序号为2i+2(其实就是左孩子节点序号+1),否则第i个节点没有右孩子节点

应用习题

  1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )
    A. 不存在这样的二叉树
    B. 200
    C. 198
    D. 199

答案:B

解析:
根据性质3,套用公式即可得出答案。

  1. 在具有 2n 个结点的完全二叉树中,叶子结点个数为( )
    A. n
    B. n+1
    C. n-1
    D. n/2

注意:n是非负整数

答案:A

解析:
因为n是非负整数,所以这颗二叉树的节点数一定是偶数。通过对比偶数和非偶数个节点的完全二叉树,可以发现偶数个节点的完全二叉树中,度为1的节点有且仅有一个。根据二叉树节点总数的计算公式:
[n0(度==0的节点数) + n1(度==1的节点数) + n2(度==2的节点数) = 2n]
由叶子节点和度为2的节点数目关系可得:
[2n = n1 + (n1 - 1) + 1]
[n1 = n]
所以答案是A。

  1. 一棵完全二叉树的节点数为531个,那么这棵树的高度为( )
    A. 11
    B. 10
    C. 8
    D. 12

答案:B

解析:
直接套用求深度的公式即可得出答案。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号