遍历的定义
根据某种策略,按照一定的次序访问二叉树中的每一个结点,使每个结点被访问一次且只被访问一次。这个过程称为二叉树的遍历。
遍历的结果是二叉树结点的线性序列。非线性结构线性化。
策略:左孩子结点一定要在右孩子结点之前访问
先序(根)遍历二叉树
若二叉树为空,则返回;否则,
- ①访问根结点;
- ②先序遍历根结点的左子树;
- ③先序遍历根结点的右子树;
所得到的线性序列分别称为先序(根)序列。
先序遍历序列为:A B D G C E F
中序(根)遍历二叉树
若二叉树为空,则返回;否则,
- ①中序遍历根结点的左子树;
- ②访问根结点;
- ③中序遍历根结点的右子树;
所得到的线性序列分别称为中序(根)序列。
中序遍历序列为: D G B A E C F
后序(根)遍历二叉树
若二叉树为空,则返回;否则,
- ①后序遍历根结点的左子树;
- ②后序遍历根结点的右子树;
- ③访问根结点;
所得到的线性序列分别称为后序(根)序列。
后序遍历序列为: G D B E F C A
层序(次)遍历二叉树
从二叉树的第一层(即根结点)开始,从上至下逐层遍历,在同一层中,则按从左到右的顺序对结点进行访问。 所得到的线性序列分别称为层序序列。
层序遍历序列为: A B C D E F G
代码实现
//编写前序遍历的方法
public void