二叉树
二叉树(Binary Tree)——是n(n >= 0)个结点所构成的集合,它或为空树( n = 0 );或为非空树,对于非空树T:
- 有且仅有一个称之为根的结点
- 除根以外的其余结点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又是二叉树
二叉树的特点与树的异同
二叉树的几种形态
三结点二叉树的五种形态
二叉树性质
二叉树的链式存储结构
三叉链表存储结构
二叉树的遍历
遍历的作用:是树结构插入、删除、修改、查找和排序运算的前提,是二叉树一切运算的基础和核心
按照某条搜索路线遍访每一个结点且不重复(又称为周游)
遍历二叉树——从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点均被访问一次且仅被访问一次
前序遍历
操作定义:
如二叉树为空,则不操作,否则
- 访问根结点
- 前序遍历左子树
- 前序遍历右子树
特点:第一位一定是根结点
心法口技—— >根- 左 - 右
中序遍历
操作定义: 如二叉树为空,则空操作;否则:
- 中序遍历左子树
- 访问根结点
- 中序遍历右子树
特点:根结点必在中间
心法口诀: 左 - 根 - 右
后序遍历
操作定义:
如二叉树为空 ,则空操作;否则:
- 后序遍历左子树
- 后序遍历右子树
- 访问根结点
特点: 最后一位一定是根结点