数据结构笔记:二叉树

定义
二叉树: n(n≥0)个结点的有限集合,该集合或者为空集(称为
空二叉树),或者由一个根结点和两棵互不相交的、分别称为根
结点的左子树和右子树的二叉树组成。

斜树:左斜树和右斜树的统称
左斜树:所有结点都只有左子树的二叉树
右斜树:所有结点都只有右子树的二叉树
满二叉树:所有分支结点都存在左子树和右子树,并且所有叶子
都在同一层上的二叉树
特点
(1)叶子只能出现在最下一层
(2)只有度为 0 和度为 2 的结点
(3)在同样深度的二叉树中结点个数最多
(4)在同样深度的二叉树中叶子结点个数最多

完全二叉树:在满二叉树中,从最后一个结点开始,连续去掉任 意个结点得到的二叉树

完全二叉树特点
(1)叶子结点只能出现在最下两层且最下
层的叶子结点都集中在二叉树的左面
A B C D E F H I J G (3)深度为 k 的完全二叉树在 k-1 层上一
定是满二叉树
(2)完全二叉树中如果有度为 1 的结点,
只可能有一个,且该结点只有左孩子
(4)在同样结点个数的二叉树中,完全二
叉树的深度最小

二叉树性质

在一棵二叉树中,如果叶子结点数为 n0,度为 2 的结
点数为 n2,则有: n0=n2+1
二叉树的第 i 层上最多有2i-1个结点(i≥1)
一棵深度为 k 的二叉树中,最多有 2k-1个结点
具有 n 个结点的完全二叉树的深度为 log2n +1
对一棵具有 n 个结点的完全二叉树中从 1 开始按层序
编号,对于任意的序号为 i(1≤i≤n)的结点(简称结点 i),有:
(1)如果 i>1,则结点 i 的双亲结点的序号为 i/2,否则结点 i 无双亲结点
(2)如果 2i≤n,则结点 i 的左孩子的序号为 2i,否则结点 i 无左孩子
(3)如果 2i+1≤n,则结点 i 的右孩子的序号为2i+1,否则结点 i 无右孩子

二叉树的遍历

前序遍历
若二叉树为空,则空操作返回;否则:
(1)访问根结点
(2)前序遍历根结点的左子树
(3)前序遍历根结点的右子树

中序遍历
若二叉树为空,则空操作返回;否则:
(1)中序遍历根结点的左子树
(2)访问根结点
(3)中序遍历根结点的右子树

后序遍历
若二叉树为空,则空操作返回;否则:
(1)后序遍历根结点的左子树
(2)后序遍历根结点的右子树
(3)访问根结点

层序遍历
从二叉树的根结点开始,从上至下
逐层遍历,在同一层中,则按从左
到右的顺序对结点逐个访问

你可能感兴趣的:(学习报告)