十五、二叉树的性质
二叉树的重要特性
性质1 非空二叉树上第 $i$ 层上至多有 ${2^{i - 1}}$ 个结点($i \ge 1$)。
性质2 深度为 $k$ 的二叉树最多有 ${2^{k}-1}$ 个结点($k \ge 1$)。
性质3 对于任意一颗二叉树,如果度为0的结点个数为 ${n_0}$,度为2的结点个数为 ${n_2}$,则 ${n_0}$ = ${n_2}$ + 1。
注意:也就是说,非空二叉树上的叶子结点数等于度为2的结点数加1,该结论经常在选择题中用到,希望同学们牢记并灵活应用。拓展到任意一棵树,若结点数量为 $n$ ,则边的数量为$n-1$ 。
满二叉树的重要特性
定义:满二叉树(Full Binary Trees)是深度为 $k$ 且含有 ${2^{k - 1}}$ 个结点的二叉树。
特点:(1)每一层上的结点数都是最大结点数,即每一层 $i$ 的结点数都具有最大值 ${2^{i - 1}}$。
(2)叶子只能出现在最下一层。
(3)在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。
完全二叉树的重要特性
定义:深度为 $k$ 的,有 $n$ 个结点的二叉树,当且仅当每一个结点都与深度为 $k$ 的满二叉树中编号从 1 至 $n$ 的结点一一对应时,成为完全二叉树(Complete Binary Tree)。
特点:(1)叶子结点只可能在层次最大的两层上出现(或者说叶子结点只能出现在最下两层)。
(2)对任一结点,若其右分支下的子孙的最大层次为 $l$,则其左分支下的子孙的最大层次必为 $l$ 或 $l+1$。
(3)同样结点数的二叉树,完全二叉树的深度最小。
(4)如果结点度为1,则该结点只有左孩子,即不存在只有右子树的情况。
性质4 具有 $n$ 个($n > 0$)结点的完全二叉树的深度(高度)为 $\left\lfloor {{{\log }_2}n} \right\rfloor + 1$。
性质5 如果对一棵有 $n$ 个结点的完全二叉树(其深度为$\left\lfloor {{{\log }_2}n} \right\rfloor + 1$)的结点按层编号,则对任一结点 $i(1 \le i \le n)$,有以下特性
- 如果 $i=1$,则结点 $i$ 是二叉树的根,无双亲;如果$i > 1$,则其双亲的编号为 $\left\lfloor {i/2} \right\rfloor $。
- 如果 ${2i > n}$,则结点 $i$ 无左孩子(结点 $i$ 为叶子结点);否则其左孩子的编号为 $2i$。
- 如果 ${2i + 1> n}$,则结点 $i$ 无右孩子;否则其左孩子的编号为 $2i+1$。
例题及解析
二叉树
1. 下列有关树的概念错误的是( B )。
A. 一棵树中只有一个无前驱的结点
B. 一棵树的度为树中各个结点的度数之和
C. 一棵树中,每个结点的度数之和等于结点总数减1
D. 一棵树中每个结点的度数之和与边的条数相等
【解析】本题考查树的相关概念。
- 一棵树中只有根结点没有前驱结点,除根结点之外,每个结点都有一个前驱结点,即父结点,故而答案A正确。
- 通常我们把一个结点拥有子树的个数称为该结点的度数,所以结点的度数之和等于除根结点外所有结点的个数,即每个结点的度数之和等于结点总数减1,故而答案C正确。
- 结点的度等于该结点子树的个数,而结点与子树之间是以边连接的,所以一棵树中每个结点的度数之和与边的条数相等,答案D正确。
- 一棵树的度等于结点中度数最大的结点的度数,而不是树中各结点的度数之和。故而,答案B错误。
2. 设一棵 $m$ 叉树中有 ${N_1}$ 个度数为1的结点, ${N_2}$ 个度数为2的结点,..., ${N_m}$ 个度数为 $m$ 的结点,则该树中共有( D )个叶子结点。
A. $\sum\limits_{i = 1}^m {(i - 1){N_i}} $ B. $\sum\limits_{i = 1}^m {{N_i}} $ C. $\sum\limits_{i = 2}^m {{N_i}} $ D. $1 + \sum\limits_{i = 2}^m {(i - 1){N_i}} $
满二叉树
1. 对于一棵满二叉树,共有 $n$ 个结点和 $m$ 个叶子结点,高度为 $h$ ,则( D )。
A. $n=h+m$ B. $n+m=2h$ C. $m=h-1$ D. $n = {2^h} - 1$
【解析】
对于高度为 $h$ 的满二叉树,$n = {2^0} + {2^1} + ... + {2^{h - 1}} = {2^h} - 1,m = {2^{h - 1}}$
或者用特殊值法。
完全二叉树
1.若一棵完全二叉树有768个结点,则该二叉树中叶结点的个数是( C )。
A.257 B. 258 C. 384 D. 385
【解析】
由完全二叉树的性质,最后一个分支结点的序号为 $\left\lfloor {768/2} \right\rfloor = 384$,故叶子结点的个数为768-384 = 384。