请教一个问题
荀荷光 知名达人 2016-08-14 12:27:30
1406 5 0


    我看到有一位大神回答得很详细,是这样的。

    我们说:后序序列——左右根——DCBA——我们可以推出:二叉树哒根为A,因为A只有左边有元素,所以我们说二叉树中只有左子树,其中B,C,D都属于以A为节点的左子树,接下来我们再根据中序看看他们的位置是怎么样哒:

                    中序序列——左根右——BDCA——我们可以发现:A为根,BCD为A的左子树,C在B的右面所以C是以B为节点的右子树,因为D在C的左边,所以D是以C 为节点的左子树

                   

      所以图示为:                       

                                       blob.png

            那么,如图中,后序序列——左右根——DCBA,

                                  中序序列——左根右——BDCA,

    那么,后序和中序都是从左开始,为什么一个是DC开头,一个是BD开头?

                                                 



代码语言


问题来自: 二叉树的遍历
某二叉树的中序序列为BDCA,后序序列为DCBA,则前序序列为( )
A. DCBA
B. BDCA
C. ABCD
D. BADC
答案:C
解析:后序序列是左右中,根结点为A;中序序列是左中右,二叉树只有左子树。按照遍历的顺序规则排列得出前序序列为ABCD。所以选择C。

共 5 个回答

    纪念& 资深达人 1387天前

    回复荀荷光 :因为后序序列为DCBA,所以易知根结点为A;

        又因为二叉树的后序序列为DCBA中序序列为BDCA,所以易知二叉树有左子树无右子树;

        其中左子树的中序序列为BDCA,后序序列为DCB;所以左结点为B,D、C是B的右子结点,C是B右子结点,D是C左子结点,故前序序列为ABCD。

    如图所示:

       A

      /

     B

     \

      C

      /

     D

    满意请采纳,谢谢!


    最佳答案

    赛赛 进阶大师 1387天前

    回复 荀荷光:这个是你画的图,可以看出,只有左子树。

    中序是左根右,后序是左右根,因为只有左子树,所以后序的右是不存在的。又因为中序,后序对于二叉树遍历不同,所以你做题可以把右子树排除,这样说可以理解么

    满意请点赞并采纳,谢谢亲的支持!

    赛赛 进阶大师 1387天前

    回复 荀荷光:亲,如果这部分题哪里有不清楚的,可以问我,里面有题目是有规律性的

    荀荷光 知名达人 1387天前

    回复 赛赛:好的,谢谢你。

您还没有登录,所以不能回复该问题
我要回复

  • 0

    点赞

  • 扫一扫分享朋友圈

    二维码

  • 分享

相关问题