【问题标题】:Building a tree from preorder and postorder traversals从前序和后序遍历构建树
【发布时间】:2014-02-23 04:43:14
【问题描述】:

如果我有前序和后序遍历,我可以构造一棵不一定是二叉树的树吗?比如:

预购:KLMOPN

下单:LOPMNK

构建:

   K
 / | \
L  M  N
  / \
 O   P

我了解到,如果没有二叉树的中序遍历,这是不可能的,但是对于非二叉树,仅使用前序和后序遍历就可以做到吗?

【问题讨论】:

标签: algorithm tree


【解决方案1】:

如果树是在节点中完成的(假设它是一个 3 节点树,左、中、右)。 你会写一个递归函数。

Void Transverse(Node n){
if( n.left ==null && n.middle==null && n.right ==null){
 System.out.print(n.value);
 return;

}
Transverse(left);
Transverse(middle);
Transverse(right);
System.out.print(n.value);

}

这是一些伪代码(我假设 OP 来自 M)。这将从您显示的树中打印出 LOPMNK。

k->L(打印L)->k->M->O(打印O)->M->P(打印P)->M(打印M)->k->N(打印N) ->k(打印 k)。

它发生的顺序是什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多