二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形和推出另一个遍历)
2012-09-27 01:06
429 查看
二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形):
(D为访问根节点,L为访问左子树,R为访问右子树)
1.二叉树的前序遍历的方式为DLR( 即先访问根,然后左子树,然后右子树)
中序遍历为LDR
后序遍历为LRD
(图 1.0)
前序遍历的方式为先访问根节点A
然后访问左子树B,D,G
(图 1.1)
然后按照DLR的方式访问,访问根节点B
然后访问左子树D,G:
(图 1.2)
然后按照DLR的方式访问,访问根节点D
最后访问G节点
之后访问A的右子树
(图 1.3)
最后前序遍历的结果为ABDGCEF
中序遍历为: DGBAECF
后序遍历为 GDBEFCA
(图 1.4)
现在反过来:知道他的两个遍历结果(其中一个必须为中序遍历:用于确定他每次递归的根节点)
现在讲一种情况:
前序遍历的为ABDGCEF
中序遍历为: DGBAECF
前序遍历的第一个肯定为根节点,所以A为根节点
(图 1.5)
遍历结果可表示为A(BDG)(CEF)
(DGB)A(ECF)
根据中序遍历A的左边DGB为左子树,右边ECF为右子树
根据前序遍历:左子树BDG的根节点为B,,再根据中序遍历知道DG为B的左子树
A(B(DG))(CEF)
((DG)B)A(ECF)
(图 1.5)
根据中序遍历DG的根节点为D,再根据中序遍历,G在D的右边
所以左边的结构为
(图 1.6)
右边和左边的分析方式一致
A(B(DG))(CEF)
((DG)B)A(ECF)
根据前序遍历:右子树的根节点为C
根据中序遍历:E为C的左子树,G为C的右子树
所以最终的结果如图:1.4
已知中序遍历和后续遍历两个条件的分析思路也是一样的,同学们可以试一试、
、
(D为访问根节点,L为访问左子树,R为访问右子树)
1.二叉树的前序遍历的方式为DLR( 即先访问根,然后左子树,然后右子树)
中序遍历为LDR
后序遍历为LRD
(图 1.0)
前序遍历的方式为先访问根节点A
然后访问左子树B,D,G
(图 1.1)
然后按照DLR的方式访问,访问根节点B
然后访问左子树D,G:
(图 1.2)
然后按照DLR的方式访问,访问根节点D
最后访问G节点
之后访问A的右子树
(图 1.3)
最后前序遍历的结果为ABDGCEF
中序遍历为: DGBAECF
后序遍历为 GDBEFCA
(图 1.4)
现在反过来:知道他的两个遍历结果(其中一个必须为中序遍历:用于确定他每次递归的根节点)
现在讲一种情况:
前序遍历的为ABDGCEF
中序遍历为: DGBAECF
前序遍历的第一个肯定为根节点,所以A为根节点
(图 1.5)
遍历结果可表示为A(BDG)(CEF)
(DGB)A(ECF)
根据中序遍历A的左边DGB为左子树,右边ECF为右子树
根据前序遍历:左子树BDG的根节点为B,,再根据中序遍历知道DG为B的左子树
A(B(DG))(CEF)
((DG)B)A(ECF)
(图 1.5)
根据中序遍历DG的根节点为D,再根据中序遍历,G在D的右边
所以左边的结构为
(图 1.6)
右边和左边的分析方式一致
A(B(DG))(CEF)
((DG)B)A(ECF)
根据前序遍历:右子树的根节点为C
根据中序遍历:E为C的左子树,G为C的右子树
所以最终的结果如图:1.4
已知中序遍历和后续遍历两个条件的分析思路也是一样的,同学们可以试一试、
、
相关文章推荐
- 二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形和推出另一个遍历)
- POJ 2255Tree Recovery 二叉树重建(根据前序遍历和中序遍历写出后序遍历)
- 如何根据两个遍历建立二叉树
- 已知二叉树的前序,中序,后序遍历中的两个,求另一个
- 由二叉树的两个遍历序列求另一个遍历序列
- 给定先序:ABCDEFGHIJK 给定中序:CBEDGFAHJIK 首先分析上述给定的先,中序,首先得知先序遍历的肯定是二叉树的根节点:A,在看中序遍历,根据中序遍历的原理可知,在A左边的一定全部属于
- 刷题之路----根据前序遍历和中序遍历或者后序遍历和中序遍历重建二叉树
- 【二叉树1】根据前序和中序遍历建立一棵二叉树
- mysql中提高Order by语句查询效率的两个思路分析
- 如何根据前序遍历序列和中序遍历序列确定二叉树
- 剑指Offer_06 根据前序遍历和中序遍历序列 重建二叉树
- 根据前序和中序遍历输出二叉树
- 根据前序遍历和中序遍历恢复二叉树(附代码)
- 二叉树的构建 遍历 以及 根据 先序遍历 中序遍历 来构建二叉树
- 根据层次遍历和中序遍历的结果还原一颗二叉树
- 【BST】根据前序遍历的数组构造搜索二叉树
- 根据前序和中序遍历创建二叉树
- 【LeetCode91-100】编码种数,逆转单链表,IP地址转化,中序遍历二叉树,生成二叉搜索树,计算二叉树个数,交叉string【hard】,判断二叉搜索树是否合法,恢复二叉树(有两个元素被交换)
- mysql 根据另一个表的条件来更新另一个表
- 根据前序遍历和中序遍历重建二叉树