文章目录
复习重点
- 树与二叉树的性质。
- 满二叉树、完全二叉树、二叉排序树、平衡二叉树、哈夫曼树的定义和性质。
- 遍历操作、转换、存储结构。
机试题型 | 说明 |
---|---|
二叉树的遍历 | 前序、中序、后序、层次遍历 |
遍历序列构造二叉树 | 中序+(前序、后序、层次) |
1. 树的基本概念
问题:树和图的区别
- 树的任何非根节点只有一个前驱节点。
- 非空树有一个根节点。
1.1 定义
- 度:节点的子树棵树。
- 宽度:树中节点最大的度。
- 深度:根节点为第一层,根节点的子节点为第二层,一次类推。
问题: 度为m的树和m叉树的区别?
- 度为m的树至少有一个节点的度为m,m叉树所有节点的度不大于m。
- 度为m的树至少有一个节点。m叉树可以为空树。
1.2 性质
- 有n个节点的树,边数一定为n-1。
- 树的节点数等于所有节点的度数加1.
n = 1 + ∑ i = 1 n m i n=1+\sum_{i=1}^n m_i n=1+i=1∑nmi
所有节点的度数等于出去根节点的节点数目,再加1就等于所有节点的个数。
- 度为m的树中第i层至多有 m i − 1 m^{i-1} mi−1个节点。
第二层最多有m个节点,第三层最多有 m 2 m^2 m2个节点。因此第i层最多有 m i − 1 m^{i-1} mi−1个节点。
- 高度为h的m叉树最多有 ( m h − 1 ) / ( m − 1 ) (m^h-1)/(m-1) (mh−1)/(m−1)个节点,最少有 h h h个节点。
根据性质3,高度为h的m叉树最多节点数 = 1 + m + ⋯ + m h − 1 = m h − 1 m − 1 =1+m+\cdots+m^{h-1}=\frac{m^h-1}{m-1} =1+m+⋯+mh−1=m−1mh−1。
- 具有n个节点的m叉树的最小高度为 [ l o g m ( n ( m − 1 ) + 1 ) ] [log_m(n(m-1)+1)] [logm(n(m−1)+1)]
根据性质4,假设具有n个节点的m叉树高度为h,则n应该大于高度为h-1的m叉树的最大节点个数。
m h − 1 − 1 / m − 1 < n ≤ m h − 1 / m − 1 → n ( m − 1 ) + 1 ≤ m h → h ≥ l o g m ( n ( m − 1 ) + 1 ) m^{h-1}-1 / m-1 < n \leq m^h-1 / m-1 \\ \to n(m-1)+1 \leq m^h \\ \to h \geq log_m(n(m-1)+1) mh−1−1/m−1<n≤mh−1/m−1→n(m−