已知二叉树的后序序列和中序序列,求先序序列。

后续遍历=左子树,右子树,根,中序遍历=左子树,根,右子树

已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?

由后序遍历序列是DBCEFGHA,可以看出整棵树的根节点是A,再看中序遍历序列EDCBAHFG 

A是根节点,左子树由A左边的元素EDCB构成,右子树由A右边的元素HFG构成 

也就是 

/—-\ 

EDCB–HFG 

看左子树有4个元素EDCB 

后序遍历序列是DBCE 

最后访问E

可以确定A下边连接的是E

根据中序遍历序列EDCB 

最先访问E

由于中序遍历E前面没有元素 

可以确定E左子树为空 

即下面的样子 

 A

/\ 

DBC 

也就是还剩下DBC的顺序没理好 

后序遍历序列是DBC 

最后访问C

则C为根节点 

连接E 

中序遍历序列DCB

C前边有D 

后边有B 

哪么可以确定DCB这棵树为 

/\ 

D B 

哪么整棵树的左子树就确定了 

为 

/\ 

D B 

同理 

右子树应为 

F

二叉树:

             A

        /        \

       E          H

           \            \

              C          G

            /    \        /

          D        B    F

    原文作者:星辰_大海
    原文地址: https://blog.csdn.net/weixin_42103959/article/details/80430669
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞