二叉树的遍历有三种方式,如下:
(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。
(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。
(3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。
(1)先序遍历
1.以F为根节点,先访问其根节点,访问其节点F
2.以F为根节点,再访问其左子树
1.以C为根节点,先访问其根节点C
2.以C为根节点,再访问其左子树,访问节点A,其左子树访问完毕
3.以C为根节点,最后访问其右子树
1.以D为根节点,先访问其根节点D
2.以D为根节点,再访问其左子树,访问节点B,其左子树访问完毕
3.以D为根节点,最后访问其右子树,无右子树,其右子树访问完毕
3.以D为根节点的这棵树访问完毕
3.以C为根节点,其右子树访问完毕
3.以C为根节点的这棵树访问完毕
2.以F为根节点的左子树访问完毕
3.以F为根节点,最后访问其右子树
1.以E为根节点,先访问其根节点E
2.以E为根节点,再访问其左子树,无左子树,左子树访问完毕
3.以E为根节点,最后访问其右子树,访问其节点G,其右子树访问完毕
3.以E为根节点的这棵树访问完毕
3.以F为根节点,其右子树访问完毕
3.以F为根节点的这棵树访问完毕
先序遍历结果为: F C A D B E G
(2)中序遍历
1.以F为根节点,先访问其左子树
1.以C为根节点,先访问其左子树,访问其节点A,其左子树访问完毕
2.以C为根节点,再访问其根节点C
3.以C为根节点,最后访问其右子树
1.以D为根节点,先访问其左子树,访问其节点B,其左子树访问完毕
2.以D为根节点,再访问其根节点,访问其节点D
3.以D为根节点,最后访问其右子树,无右子树,其右子树访问完毕
3.以C为根节点,其右子树访问完毕
3.以C为根节点的这棵树访问完毕
1.以F为根节点的左子树访问完毕
2.以F为根节点,再访问其根节点,访问其节点F
3.以F为根节点,最后访问其右子树
1.以E为根节点,先访问其左子树,无左子树,其左子树访问完毕
2.以E为根节点,再访问其根节点,访问其节点E
3.以E为根节点,最后访问其右子树,访问其节点G
3.以E为根节点的这棵树访问完毕
3.以F为根节点,其右子树访问完毕
3.以F为根节点的这棵树访问完毕
中序遍历结果为:A C B D F E G
(3)后序遍历
1.以F给根节点,先访问其左子树
1.以C为根节点,先访问其左子树,访问节点A,其左子树访问完毕
2.以C为根节点,再访问其右子树
1.以D为根节点,先访问其左子树,访问其节点B,其左子树访问完毕
2.以D为根节点,再访问其右子树,无右子树,其右子树访问完毕
3.以D为根节点,最后访问其根节点D
3.以D为根节点的这棵树访问完毕
2.以C为根节点,其右子树访问完毕
3.以C为根节点,最后访问其根节点C
3.以C为根节点的这棵树访问完毕
1.以F为根节点,其左子树访问完毕
2.以F为根节点,访问其右子树
1.以E为根节点,先访问其左子树,无左子树,其左子树访问完毕
2.以E为根节点,再访问其右子树,访问其节点G
3.以E为根节点,最后访问其根节点,访问其节点E
3.以E为根节点的这棵树访问完毕
2.以F为根节点,其右子树访问完毕
3.以F为根节点,访问其根节点,访问节点F
3.以F为根节点的这棵树访问完毕
后序遍历结果为:A B D C G E F