您的位置:首页 > 其它

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

2015-04-17 09:28 357 查看
已知二叉树后序遍历序列是DBCEFGHA,中序遍历序列EDCBAHFG,它的前序遍历的序列是?画出二叉树.

后续遍历的顺序是左右根,中序遍历的顺序是左根右

这点应该懂吧

由后续访问序列可以看出最后一个被访问的必定是这个树的根

而中序遍历的序列可以看出,一棵树当根确定后,在根前面被访问的是他的左子树,后边的是他的右子树元素

弄懂了上边两点就开始做题吧

由后序遍历序列是DBCEFGHA

为了方便,我写小写字母了啊

可以看出整棵树的根节点是a

再看中序遍历序列EDCBAHFG

a是根节点

左子树由a左边的元素EDCB构成

右子树由a右边的元素HFG构成

也就是

a

/----/

EDCB--HFG

到这里应该都懂吧

那接下来就着重讲一下左子树的确定

右子树同理可得了

看左子树有4个元素EDCB

后序遍历序列是DBCE

最后访问e

可以确定a下边连接的是e

根据中序遍历序列EDCB

最先访问e

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

可以确定e左子树为空

即下面的样子

a

/

e

/

dbc

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

后序遍历序列是dbc

最后访问c

则c为根节点

连接e

中序遍历序列dcb

c前边有d

后边有b

哪么可以确定dcb这棵树为

c

/

d b

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



e

/

c

/

d b

同理

右子树应为

h

/

g

/

f

则整棵树就出来了

为下图所示

得出整棵树

前序遍历自然不在话下

为aecdbhgf

------------------------



总结:根据根的读取顺序决定前、中、后序,先左后右。

前序最左侧是根,后序最右侧是根,根把中序一分为二。

这种题多做几道,做熟了就简单了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐