1. 二叉树
(1) 可以为空,即n = 0
(2) 左右有序,颠倒后是不同的树
2.特殊二叉树
(1)满二叉树(每一层结点都是满的)
(2)完全二叉树(只有最后一层结点不是满的,但是结点从左排起的)
(3)二叉排序树
(4)二叉平衡树
3.二叉树性质(会推导,记忆并能用于计算)
(1) 非空二叉树上叶子结点数等于度为2的结点数加一,即n0 = n2 + 1
推导过程:
设度为0,1,2的结点个数分别为n0,n1,n2,结点总数n = n0 + n1 + n2
由于每个结点的一个度便代表有一个孩子结点,所以 n = n1 + 2 × n2 + 1 </br>
n0 + n1 + n2 = n1 + 2 × n2 + 1</br>
化简得 n0 = n2 + 1
(2)非空二叉树上第k层上至多有2k - 1个结点(k >= 1)
推导过程:
参考满二叉树,因为满二叉树是同样层次二叉树中结点最多的二叉树
第一层,1个结点
第二层,2个结点
第三次,4个结点
因此,可以理解为每次都是×2
(3)高度为H的二叉树至多有 22H - 1 个结点(H >= 1)
推导过程:
从(2)可知,满二叉树每层的结点数为 2k - 1
因而,H层的二叉树的结点总数是所有层的结点数之和
用等比数列求和公式求解可得 22H - 1
(4) 具有N个结点的完全二叉树的高度为 log2(N + 1)向上取整 或 log2N向下取整 + 1
推导过程:
从(3)可得逆推导可得
(5)对完全而二叉树从上到下、从左到右的顺序依次编号则有以下关系
- 第 i 个结点(i 为偶数)的是第 i / 2个结点的左孩子
- 第 i 个结点(i 为奇数)的是第 (i - 1) / 2个结点的右孩子
- 第 i 个结点的左孩子是 2 × i,右孩子是 2 × i + 1
- 第 i 个结点深度为 log2i向下取整 + 1
4. 二叉树存储方式
- 顺序存储结构
从上到下,从左到右存储结点,当结点为空则占据一个位置。 - 链式存储结构
每个结点有左右孩子指针域,分别指向左右孩子