【发布时间】:2014-11-06 23:34:09
【问题描述】:
在给定两次遍历的情况下,是否可以识别不存在二叉树的序列(例如:顺序遍历和后序遍历)?
我了解后序遍历的最后一个元素或前序遍历的第一个元素是树的根。使用这样的基本事实,是否可以在不实际构建树的情况下测试这些数组并确定它们是否生成相同的树?
我已经有一个算法可以从这两个序列(in-和post-)中构建一棵树,但是如果有办法预先测试数组,我不想运行该算法。这将节省大量时间,而不是运行算法并在最后发现。
注意:这不一定是二叉搜索树。一棵二叉树就足够了。
【问题讨论】:
-
我不明白 - 任何序列都不能存储在二叉树中吗?
-
是的,但是如果给你一个顺序和后序遍历作为你的两个序列,你怎么知道它们是否来自同一棵树?
-
现在清楚多了。
标签: algorithm tree binary-tree tree-traversal