【问题标题】:Given a tree traversal order find out whether it is preorder inorder or postorder给定一个树的遍历顺序,找出它是前序还是后序
【发布时间】:2013-12-07 08:34:00
【问题描述】:

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

  1. 如何有效地确定其预购、中购还是后购?
  2. 如何有效地重构树,而不必为如下所示的三种遍历类型中的每一种构造树?

【问题讨论】:

    标签: tree tree-traversal


    【解决方案1】:

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

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

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

    如果是二叉树,如果:

    • 列表完全有序,绝对有序

    • 列表未排序,列表中不是最小值的某个值是第一个值, 它肯定是预购的(第一个值是根)

    • 列表未排序,第一个值为最小值。它绝对是后订单。

    给定二叉树的遍历,

    if in-order : 不止一棵树会导致该有序遍历。

    if pre-order:正好对应一棵树(列表中的第一个总是该子树的根,小于根的值在左子树中,大于在右子树中)

    if post-order:正好是一个子树(类似于上面的pre-order。)

    【讨论】:

      猜你喜欢
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多