目录
二叉树的遍历:
1.1先序遍历
过程:先访问根结点,再先序遍历左子树,最后先序遍历右子树。
如图1所示:
此二叉树先序遍历序列结果为:ABJDGCEHF.
详细过程如下:
从上往下遍历,其中根结点为A。
左子树为:
先访问图1的根结点A,再遍历访问左子树。遍历左子树的过程:在左子树中,B为根结点,所以先访问结点B,再遍历图2.0的左子树,访问到结点J,左子树没有其他结点了。再遍历图2.0的右子树,先访问其右子树的根结点为D,后访问其左结点G,没有右结点。所以遍历左子树的结果为:BJDG.
右子树为:
如图3显示,采用先序遍历,先访问到根结点C,再访问图3的左子树,访问到其根结点E,没有左子树,然后访问右子树,访问到结点H。再遍历图3的右子树,访问到结点F。遍历结果为:CEHF。
所以图一的先序遍历结果为:ABJDGCEHF。
说明:
整个遍历子树的顺序都是采用先序遍历的顺序为根左右
2.1中序遍历
过程:先中序遍历左子树,再访问根结点,最后中序遍历右子树
首先中序遍历左子树:
首先访问图2的左子树,访问到结点J,再访问到根结点B,最后中序遍历右子树,顺序为:先访问左子树访问到G,再访问到根结点D,没有右子树。访问左子树的结果为JBGD。
其次访问图一的根结点A。
最后遍历右子树:
首先中序遍历图3的左子树,访问顺序为:先访问图3的左子树,没有结点,再访问根结点,访问到E结点,再访问右子树,访问到H结点,所以图3的其左子树访问结果为EH,再访问图3的根结点C,最后中序遍历图3的右子树,只剩下结点F。整个右子树遍历的结果为EHCF。
中序遍历的结果为:JBGDAEHCF 。
说明:
整个遍历过程都是采用中序遍历的顺序,左中右;
3.1后序遍历
过程:先后序遍历左子树,再后序遍历右子树,最后遍历根结点。
注意:后序遍历是从二叉树的底部从下往上访问结点。
首先后序遍历图一的左子树:
首先后序遍历图2的左子树,访问到结点J,再后序遍历其右子树,顺序为:访问其左子树,访问到结点G,再访问右子树,没有右子树,则再访问根结点D,最后访问图2其根结点B。遍历结果为:JGDB.
其次遍历图一的右子树:
首先遍历图3的左子树,首先后序访问图3的左子树的左子树,没有左子树,再访问其右子树,访问到结点H,再访问根结点E,再遍历其右子树,只有结点F,最后访问其根结点C。后序遍历的结果为:EHFC。
后序遍历图一的结果为:JGDBHEFCA。
说明:
整个遍历顺序都是采用后序遍历的顺序,左右根;
4.1层次遍历
过程:二叉树为非空时,先访问根结点(第一层),再从左向右依次访问每层结点。
如图1所示,二叉树的层次遍历序列为:ABCJDEFGH。