您的位置:首页 > 其它

二叉树的遍历(分析思路和根据两个遍历条件写出遍历图形和推出另一个遍历)

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



已知中序遍历和后续遍历两个条件的分析思路也是一样的,同学们可以试一试、

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐