【发布时间】:2013-12-07 08:34:00
【问题描述】:
假设有人给我一个从 A 到 G - F、B、A、D、C、E、G、I、H 的节点的树遍历顺序,可以是前序、中序或后序
- 如何有效地确定其预购、中购还是后购?
- 如何有效地重构树,而不必为如下所示的三种遍历类型中的每一种构造树?
【问题讨论】:
标签: tree tree-traversal
假设有人给我一个从 A 到 G - F、B、A、D、C、E、G、I、H 的节点的树遍历顺序,可以是前序、中序或后序
【问题讨论】:
标签: tree tree-traversal
假设给你的树遍历是准确的--
如果你没有任何关于“什么样的树”的信息,你就无法知道它是什么样的遍历。
如果您获得有关树的信息以及值的组织方式,您可能可以。
如果是二叉树,如果:
列表完全有序,绝对有序
列表未排序,列表中不是最小值的某个值是第一个值, 它肯定是预购的(第一个值是根)
给定二叉树的遍历,
if in-order : 不止一棵树会导致该有序遍历。
if pre-order:正好对应一棵树(列表中的第一个总是该子树的根,小于根的值在左子树中,大于在右子树中)
if post-order:正好是一个子树(类似于上面的pre-order。)
【讨论】: