大话数据结构学习笔记 - 二叉树
二叉树的定义
二叉树(Binary Tree
)是 n(n≥0) n ( n ≥ 0 ) 个结点的有限集合, 该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成
二叉树特点
特点
- 每个结点最多有两棵子树,故不存在度大于
2
的结点 - 左子树和右子树是有顺序的,次序不能任意颠倒
- 即使树中某结点只有一棵子树,也要区分是左子树还是右子树
五种基本形态
- 空二叉树
- 只有一个根节点
- 根节点只有左子树
- 根节点只有右子树
- 根节点既有左子树又有右子树
特殊二叉树
斜树:所有结点都只有左子树的二叉树叫左斜树,对应有右斜树,统称为斜树
满二叉树:所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上的二叉树
- 叶子只能出现在最下一层,否则不平衡
- 非叶子节点的度一定是
2
- 同样深度的二叉树,满二叉树的结点个数最多,叶子数最多
完全二叉树: 对一棵具有
n
个结点的二叉树按层序编号,如果编号为 i(1≤i≤n) i ( 1 ≤ i ≤ n ) 的结点与同样深度的满二叉树中编号为i
的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树- 叶子结点只能出现在最下两层
- 最下层的叶子一定集中在左部连续位置
- 倒数二层,若有叶子结点,一定都在右部连续位置
- 如果结点度为
1
,则该结点只有左孩子,即不存在只有右子树的情况 - 同样结点数的二叉树,完全二叉树的深度最小
二叉树的性质
- 在二叉树的第
i
层上至多有 2i−1 2 i − 1 个结点 (i≥1) ( i ≥ 1 ) - 深度为
k
的二叉树至多有 2k−1 2 k − 1 个结点