给定一个树遍历顺序,找出它是预订顺序还是后顺序

时间:2013-12-07 08:34:01

标签: tree tree-traversal

假设有人给我一个树遍历顺序,从A到G-F,B,A,D,C,E,G,I,H的节点可以是预订,有序或后序

  1. 如何有效地确定其预订,订购或后序?
  2. 如何有效地重建树,而不必为下面所示的三种遍历类型中的每一种构建树?
  3. Sample tree

1 个答案:

答案 0 :(得分:0)

假设给你的树遍历是准确的 -

如果你没有关于“什么样的树”的任何信息,你就无法确定它是什么类型的遍历。

如果您获得有关树的信息以及值的组织方式,您可以。

如果它是二叉树,并且如果:

  • 列表完全有序,绝对是按顺序

  • 列表未被排序,列表中不是最小值的值是第一个值, 它绝对是预先订购的(第一个值是根)

  • 列表未订购且第一个值为最小值。它肯定是在后期订购。

给定二叉树的遍历,

如果按顺序:有多个树导致按顺序遍历。

如果预订:恰好是一个与之对应的树(列表中的第一个始终是该子树的根,则小于root的值在左子树中,大于在右子树中)

如果是下订单:恰好是一个子树(类似于上面的预订。)