5.2_1 二叉树的定义和基本术语
1、二叉树的基本概念
- 每个结点至多只有两颗子树
- 左右子树不能颠倒(二叉树是有序树)
- 二叉树是递归定义的数据结构
- 任意结点的度<=2,允许所有结点的度都<2,可以是空树
2、二叉树的五种状态
3、几个特殊的二叉树
满二叉树:
- 除了最下面的叶子结点外,其他所有的分支结点都长满了两个分支
- 等比数列求和公式:
1 x (1-2^h)/(1-2)= 2 ^ h - 1 - 结点i的左孩子为2i,右孩子为2i+1,父节点为[i/2]
完全二叉树:
- ③是同满二叉树的③
- 完全二叉树也就是在满二叉树的基础上删除结点,剩余的结点和二叉树对应的结点的编号要相同
- i<=[n/2]为分支结点,i>[n/2]为叶子结点
- 如果完全二叉树中某个结点只有一个孩子,那么一定是左孩子
满二叉树和完全二叉树是形态上特殊的二叉树,接下来是功能上比较特殊的二叉树:
二叉排序树
- 二叉排序树的左子树的关键字<根结点的关键字
- 二叉排序树的右子树的关键字>根结点的关键字
- 左子树和右子树又各是一棵二叉排序树
- 故二叉排序树可用于元素的排序、搜索
平衡二叉树
树上任一结点的左子树和右子树的深度之差不超过1
- 使树比较宽和矮,节省查找时间
5.2_2 二叉树的常考性质
1、二叉树的常考考点
(1)
(2)
(3)
2、完全二叉树的常考考点
(1)
(第一条式子的解法)
(第二条式子的解法)
(2)
故只要知道完全二叉树的结点数n,就可以知道它有几个叶子,几个单分支结点,几个双分支结点
3、知识回顾与重要考点
5.2_3 二叉树的存储结构
1、二叉树的顺序存储
2、二叉树的链式存储
有n个结点时,共有2n个指针,除了根结点之外,其他每个结点头上都会连一个指针,故总共有n-1个这样的指针,因此,n个结点的二叉链表共有2n-(n-1)=n+1个空链域,可以用于构造线索二叉树
3、知识回顾与重要考点