遍历是按某种策略访问树中的每个结点,且仅访问一次的过程.二叉树的遍历可以分为以下两种:
深度优先遍历算法的思想是尽可能地沿分支结点向深度方向进行周游.其中深度遍历又可以分前序遍历,中序遍历和后序变量.要深入了解遍历,光靠文字是解决不了问题,我们就以一个例子来看看.如:有以下一棵二叉树:
使用前序遍历遍历以上的二叉树,其步骤为:(1)访问根结点.(2)按前序周游左子树.(3)按前序周游右子树.可以用三个字来概括遍历的顺序,即"根-左-右".现在我们用图来看看.
(1)先把二叉树分为5个子树,如下图所示:
(2)以上5棵子树,按照(1),(2),(3),(4),(5)顺序遵循"根-左-右"的规律进行遍历,其遍历顺序如下:
使用中序遍历遍历以上二叉树,其步骤为:(1)按中序周游左子树.(2)访问根结点.(3)按中序周游右子树.可以用三个字来概括遍历的顺序,即"左-根-右".现在我们用图来看看.
(1)先把二叉树分为5棵子树,如下图所示:
(2)以上5棵子树,按照(2),(3),(1),(5),(4)顺序遵循"左-根-右"的规律进行遍历,其遍历顺序如下:
使用前序遍历遍历以上的二叉树,其步骤为:(1)按后序周游左子树.(2)按后序周游右子树.(3)访问根结点.可以用三个字来概括遍历的顺序,即"左-右-根".现在我们用图来看看.
(1)先把二叉树分为5个子树,如下图所示:
(2)以上5棵子树,按照(2),(3),(5),(4),(1)顺序遵循"左-右-根"的规律进行遍历,其遍历顺序如下:
广度优先遍历就是从左到右地按层次进行遍历.首先访问第0层,然后从左到右一次就范文每一层两个结点.
其遍历步骤如下图所示:
以上的是二叉树的遍历方式,二叉树是一种特殊的树,学会了二叉树的遍历,树的遍历还会是问题吗?