二叉树的定义

a
b
c
d
e
f

二叉树就是最大度为 2 的有序树

满二叉树

1
2
3
4
5
6
7

完全二叉树

二叉树从左往右、从上往下一个个排,最后一层排满了就是满二叉树,没排满就是完全二叉树(如下图) 完全二叉树 如果 14 或 15 号位置的结点存在,那也不是完全二叉树 如果没有 12 号结点但是有 13 号结点(指图上对应位置的结点),那也不是完全二叉树

二叉排序树(BST)

左子树
右子树
11
13
14
9
12
26
50
66
21
30
60
70
19

平衡二叉树

任何一个结点的左子树和右子树深度差不超过 1 下图左边为平衡二叉树,右边则不是 PVatdH

常考性质

二叉树

  1. xbL04u
  2. uP5NO2
  3. Gqbkcv 最少有 h 个结点

完全二叉树

  1. 具有 n 个结点的完全二叉树的高度 h=log2(n+1) (向上取整)或 h=1+log2n(向下取整)

  2. OlkaN7

  3. 第 i 个结点所在层次为 log2(n+1) 或 1+log2n

  4. rexhY6

    • 完全二叉树有 n 个结点

      • n 是偶数:

        • n0=n/2
        • n1=1
        • n2=n/2-1
      • n 是奇数

        • n0=(n+1)/2
        • n1=0
        • n2=(n+1)/2-1=(n-1)/2

错题集

  1. IMG_0261
答案与解析:
答案: C
解析:
二叉树的总结点数=n1+2n2+1
即 2n=n1+2n2+1
显然 n1 不能是偶数,所以 C 错
  1. IMG_0262
答案与解析:
答案:D
解析:
先把叶子结点当成完全二叉树的叶子结点
叶子结点的个数 n0=116
所以总结点数 n=2n0=232
当然也可能是 231,最后结果都一样所以用 232 算就可以
此时 n1=1(231 的话这个值是 0)
剩下的结点都是只有一个结点,可以都当成只有左结点连在完全二叉树的根结点上边
剩下的结点的数量=2011-232=1779
所以没有右结点的数量=剩下的结点的数量+n0+n1=1779+116+1=1896
  1. IMG_0263
答案与解析:
答案:C
解析:
完全二叉树的叶子结点可能在最后一层或者倒数第二层
这里说结点个数最多,只有叶子结点在倒数第二层时符合
倒数第二层(第 6 层)的结点数 = 25=32
其中有 32-8=24 个结点有两个子结点(因为说了最多,所以不存在一个子结点的情况)
所以第 7 层结点的个数为 24x2=48 个
前 6 层(满二叉树)有 26-1=63 个结点
所以一共有 63+48=111 个结点
  1. IMG_0264
答案与解析:
答案:A
解析:
如果结点总数是 2k 的话就会存在一个 n1 结点,与题意不符
如果结点总数是奇数,与题意相符(没有子结点数为 1 的结点),总数为 2k-1