回 帖 发 新 帖 刷新版面

主题:已知先序遍历,中序遍历求后序遍历

如题
   我要知道用什么方法求,不需要具体代码,请各位高手帮忙哦!

回复列表 (共1个回复)

沙发

中序遍历保证了做子树的所有结点在它左边,右子树的结点在它右边。
过程如下:后用先序遍历结果,找到父结点,然后按照中序遍历结果将其左右子树分开;然后再从先序遍历结果中再找到左子树的根结点,再重复以上操作……直到所有结点归位。


中序:423517698
先序:124356789

根据先序,父结点为1;中序,分为如下2子树:
(4235)1(7698)
然后是左子树4235,对应的先序为2435,分为:
(4)2(35)
左子树为4。再看右子树35,先序为35,分为:
3(5)
再看7698这一支。中序为7698,先序为6789,根结点为6,分为:
(7)6(89)
左子树为7。右子树为98,先序为89,根为8。
因此得出树为
((4)2(3(5)))1((7)6((9)8))
如图:
[img]http://gz0531.org/other/tree.jpg[/img]

我来回复

您尚未登录,请登录后再回复。点此登录或注册