从预订和后序遍历构建树

时间:2014-02-23 04:43:14

标签: algorithm tree

如果我有预订和后序遍历,我可以构建一个不一定是二叉树的树吗?类似的东西:

预订:KLMOPN

订购后:LOPMNK

构建

   K
 / | \
L  M  N
  / \
 O   P

我已经读过,如果不对二叉树进行顺序遍历,这是不可能的,但是对于非二叉树,只能对前序和后序遍历执行此操作吗?

1 个答案:

答案 0 :(得分: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)。

订单是否会发生。