上一篇文章已经介绍了遍历的作用,这里再次重复一下:
它是树结构插入,删除,修改,查找和排序运算的前提,是二叉树一切运算的基础和核心。
遍历二叉树——从根结点触发,按照某种次序依次访问二叉树中所有结点,使得每个结点均被访问一次且仅被访问一次。
中序遍历:
若二叉树为空,则空操作
若二叉树不为空则:
中序遍历左子树
访问根结点
中序遍历右子树
中序遍历后的结果:
D | B | E | A | F | C | G |
过程解释:先遍历左子树,访问左子树的最后一个左结点D,然后访问D的根结点B,然后访问B的右节点E,然后访问根结点A,然后遍历右子树,访问右子树的最后一个左结点F,然后访问F的根结点C,然后访问B的右节点G,结束;
特点:根结点一定在中间
后序遍历:
若二叉树为空,则空操作
若二叉树不为空则:
后序遍历左子树
后序遍历右子树
访问根结点
后序遍历后的结果:
D | E | B | F | C | G | A |
过程解释:先遍历左子树,访问左子树的最后一个左结点D,然后访问D的根结点B,然后访问B的右节点E,然后遍历右子树,访问右子树的最后一个左结点F,然后访问F的根结点C,然后访问B的右节点G,最后访问根结点A,结束;
特点:根结点一定在最后
代码后续会发出来 会在二叉树的中序遍历,后续遍历(代码实现)文章中