提示:这里省略了一些基础定义,需要自行查阅
前言
树:是有n个元素(结点)的有限集,n=0为空树;只有一个特殊的结点称为根(Root)
二叉树的定义:
是n(n≥0)个结点的有限集合,该集合(或者为空集),由一个根节点和两颗互不相交的左子树和右子树组成。
一、二叉树的特点与性质
1.1 特点
- 每个结点最多只有有两颗子树(左子树和右子树);
- 左子树和右子树次序固定,不能颠倒;
- 定义一颗具体的二叉树需要明确指出每一个子节点(除开叶子节点)的左子树和右子树;
a. 结点的层次:从根节点开始:根为第一层,根的孩子为第二层……;
b. 结点的度:节点拥有子树数称为结点的度; - 树的度:各个结点度的最大值;
- 树的深度:最大层次;
二叉树的基本形态:
a. 空树
b. 只有一个根节点(Root)
c. 斜树
d. 满二叉树
e. 完全二叉树
满二叉树一定是完全二叉树,但完全二叉树不一定是满二叉树;
完全二叉树的特点: - 叶子节点只能出现在最下两层;
- 最下面的叶子一定集中在左部连续的位置;
- 结点的度为:1则该结点只有左孩子;
- 结点总数相同的二叉树,完全二叉树的深度最小;
1.2 二叉树的性质
- 在二叉树的第i层至多有 2 i − 1 2^{i-1} 2i−1个结点;
- 深度为k的二叉树至多只有 2 k − 1 2^{k}-1 2k−1个结点(等比数列求前n项和类似,每层容纳最多 2 i − 1 2^{i-1} 2i−1个结点,因此k项共容纳 2 k − 1 2^{k}-1 2k−1)
- 具有n个结点的完全二叉树的深度为 l o g 2 n + 1 log_{2}n+1 log2n+1这里对数需要向下取整;
二、二叉树的存储结构
- 双亲法
- 孩子表示法
- 孩子兄弟表示法
总结
提示:这里对文章进行总结:
例如:二叉树的性质,特点做了一个大概的说明,在下一讲将着重讲解二叉树的构建算法特别是中序遍历线索化的递归调用