全部问题 > 当前问题

请教一个问题


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

    我们说:后序序列——左右根——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开头?

                                                 



代码语言


荀荷光 2016-8-14 12:27:30

共 5 个回答

荀荷光 2016-8-14 12:29:01

694054531624996864.png

纪念& 2016-8-14 12:33:40

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

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

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

如图所示:

   A

  /

 B

 \

  C

  /

 D

满意请采纳,谢谢!


最佳答案

赛赛 2016-8-14 12:35:27

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

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

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

赛赛 2016-8-14 12:43:20

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

荀荷光 2016-8-14 12:49:41

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

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