数据结构–二叉树的性质
二叉树常考性质
常见考点1: 设非空二叉树中度为0、1和2的结点个数分别为 n 0 、 n 1 和 n 2 ,则 n 0 = n 2 + 1 n_0、n_1和n_2,则n_0= n_2 +1 n0、n1和n2,则n0=n2+1
n 0 = n 2 + 1 \color{red}n_0= n_2 +1 n0=n2+1(叶子结点比二分支结点多一个)
假设树中结点总数为n,则
n = n 0 + n 1 + n 2 n = n 1 + 2 n 2 + 1 \begin{array}{c}\mathrm{n}=n_0+n_1+n_2\\\mathrm{n}=n_1+2n_2+1\end{array} n=n0+n1+n2n=n1+2n2+1
树的结点数 = 总度数 + 1 \color{green}树的结点数=总度数+1 树的结点数=总度数+1
下式减上式可得:
n 0 = n 2 + 1 \color{red}n_0= n_2 +1 n0=n2+1
常见考点2:
二叉树第i层至多有 2 i − 1 2^{i-1} 2i−1个结点( i≥1)
m叉树第i层至多有 m i − 1 m^{i-1} mi−1个结点( i≥1)
常见考点3: 高度为h的二叉树至多有 2 h − 1 2^h -1 2h−1个结点(满二叉树)
高度为h的m叉树至多有 m h − 1 m − 1 \frac{m^{h}-1}{m-1} m−1mh−1 个结点
等比数列求和公式: a + a q + a q 2 + ⋯ + a q n − 1 = a ( 1 − q n ) 1 − q \text{等比数列求和公式:}a+a\text{q}+aq^2+\cdots+aq^{n-1}=\frac{a(1-qn)}{1-q} 等比数列求和公式:a+aq+aq2+⋯+aqn−1=1−qa(1−qn)
完全二叉树的常考性质
常见考点1: 具有n个(n>0)结点的 完全二叉树的高度 h 为 ⌈ log 2 ( n + 1 ) ⌉ 或 ⌊ log 2 n ⌋ + 1 \color{red}完全二叉树的高度h为 \lceil\log_2(n+1)\rceil\text{或}\lfloor\log_2n\rfloor+1 完全二叉树的高度h为⌈log2(n+1)⌉或⌊log2n⌋+1
高为h的满二叉树共有 2 h − 1 2^h -1 2h−1个结点高为 h − 1 h-1 h−1的满二叉树共有 2 h − 1 − 1 2^{h-1} -1 2h−1−1个结点
2 h − 1 − 1 < n ≤ 2 h − 1 2 h − 1 < n + 1 ≤ 2 h h − 1 < log 2 ( n + 1 ) ≤ h h = ⌈ log 2 ( n + 1 ) ⌉ \begin{gathered} 2^{h-1}-1<n\leq2^{h}-1 \\ 2^{h-1}<n+1\leq2^h \\ h-1<\log_{2}(n+1)\leq h \\ h=\color{red}\lceil\log_{2}(n+1)\rceil \end{gathered} 2h−1−1<n≤2h−12h−1<n+1≤2hh−1<log2(n+1)≤hh=⌈log2(n+1)⌉
高为h-1的满二叉树共有 2 h − 1 − 1 2^{h-1}-1 2h−1−1个结点
高为h的完全二叉树
至少 2 h − 1 2^{h-1} 2h−1个结点
至多 2 h − 1 2^h -1 2h−1个结点
2 h − 1 ≤ n < 2 h h − 1 ≤ log 2 n < h h = ⌊ log 2 n ⌋ + 1 \begin{aligned}2^{h-1}&\leq n<2^h\\\\h-1&\leq\log_2n<\text{h}\\\\h&=\color{red}{\lfloor\log_2n\rfloor}+1\end{aligned} 2h−1h−1h≤n<2h≤log2n<h=⌊log2n⌋+1
第 i 个结点所在层次为 ⌈ log 2 ( n + 1 ) ⌉ 或 ⌊ log 2 n ⌋ + 1 \color{red}\text{第 }i\textit{ 个结点所在层次为}\lceil\log_2(n+1)\rceil\text{或}\lfloor\log_2n\rfloor+1 第 i 个结点所在层次为⌈log2(n+1)⌉或⌊log2n⌋+1
常见考点2: 对于完全二叉树,可以由的结点数n推出度为0、1和2的结点个数为 n 0 、 n 1 , 和 n 2 , n_0、n_1,和n_2, n0、n1,和n2,
完全二叉树最多只有一个度为1的结点,即
n 1 = 0 或1 n 0 = n 2 + 1 → n 0 + n 2 一定是奇数 \begin{array}{l}n_1=0\text{或1}\\n_0=n_2+1\rightarrow n_0+n_2\text{ 一定是奇数}\end{array} n1=0或1n0=n2+1→n0+n2 一定是奇数
若完全二叉树有 2 k 个(偶数)个结点,则必有 n 1 = 1 , n 0 = k , n 2 = k − 1 \color{red}若完全二叉树有2k个(偶数)个结点,则必有n_1=1,n_0 = k,n_2 = k-1 若完全二叉树有2k个(偶数)个结点,则必有n1=1,n0=k,n2=k−1
若完全二叉树有 2 k − 1 个(奇数)个结点,则必有 n 1 = 0 , n 0 = k , n 2 = k − 1 \color{red}若完全二叉树有2k-1个(奇数)个结点,则必有n_1=0,n_0= k, n_2 = k-1 若完全二叉树有2k−1个(奇数)个结点,则必有n1=0,n0=k,n2=k−1
知识点回顾与重要考点
二叉树:
- n 0 = n 2 + 1 n_0= n_2+ 1 n0=n2+1
- 第 i 层至多有 2 i − 1 2^{i-1} 2i−1个结点( i≥1)
- 高度为 h 的二叉树至多有 2 h − 1 2^h - 1 2h−1 个结点
完全二叉树:
- 具有 n 个(n>0)结点的完全二叉树的高度 h 为 ⌈ log 2 ( n + 1 ) ⌉ 或 ⌊ log 2 n ⌋ + 1 \lceil\log_2(n+1)\rceil\text{或}\lfloor\log_2n\rfloor+1 ⌈log2(n+1)⌉或⌊log2n⌋+1
- 对于完全二叉树,可以由的结点数 n 推出为 0、1 和 2 的结点个数为 n 0 、 n 1 和 n 2 n_0、n_1和n_2 n0、n1和n2 (突破点:完全二叉树最多只会有一个度为1的结点)