已知二叉树的前序序列为ABCDEFG,中序序列为DBCAFEG,则后序序列为

1个回答

  • 首先,题目可能有问题,

    思路,在先序序列中找根,中序序列中区分左右子树,递归就可以了.

    由先序序列ABCDEFG,可知,该树的根为A,由中序DBCAFEG可知,A前面的DBC为该树的左子树,A后面的FEG的其右子树.

    继续分析,原序列先序被分为两组,BCD和EFG,中序分别为DBC和FEG,

    先序BCD,中序DBC这棵以A为根的树的左子树,其根为B,用上面方法可知,D在B前面,即D是B的左子树,C在B的后面,即为右子树,(此时,先序应该为BDC,和题目冲突,中序应该为CDBAFEG就对了,或者把先序改一下也可以.)同理可得EFG和FEG这棵树的根为E,F和G分别为其左右子树,这样一来,树就形成了.

    A

    /

    B E

    / /

    C D F G