这篇文章我们准备将二叉树实现为具体的代码
首先我们要从二叉树的遍历说起。二叉树的遍历主要有四种形式
1. 前序遍历
方法:如果二叉树为空,则直接返回。如果二叉树非空,则访问根结点,再前序遍历左子树,然后前序遍历右子树
我们可以知道这样的遍历方式是以递归形式给出的。那么我们以下面这棵树为例,它的前序遍历顺序为: A B D G H C E F
对于整个遍历过程,首先从根结点开始。
1.访问根结点A
2.访问A的左子树的根结点B(这样描述是为了体现出递归,这里进入了对左子树的递归遍历)
3.访问B的左子树的根结点D
4.访问D的左子树的根结点G
5.访问G的左子树的根结点,此时为空,什么也不做,G的左子树遍历完毕。开始遍历G的右子树
6.访问G的右子树的根结点,为空,什么也不做,这时D的左子树遍历完毕
7.向上返回至D,开始递归的前序遍历D的右子树,所以访问结点H
8.H的左右子树均为空。所以什么也不做,向上返回(如步骤5,6)。这时以B为根的左子树,也就是以D为根结点的树遍历完毕了
9.返回至B,遍历B的右子树,为空,返回。这时B为根节点的树遍历完毕,也就是A的左子树遍历完毕
10. 返回至A,开始遍历A的右子树。访问A的右子树根结点C。
11. 前序遍历C的左子树,访问C的左子树根结点E。
12. E左右子树均为空,C的左子树遍历完毕,开始遍历C的右子树。于是访问F
13. F左右子树均为空,这时以A为根的右子树遍历完毕。
14. 整棵树遍历完毕
2.中序遍历
方法:如果二叉树为空,则直接返回。如果二叉树非空,则从根结点开始中序遍历左子树,然后访