0

可能的重复:
构造一棵树

嗨,我怎样才能用java编写一个程序,以便创建一个具有给定预序和中序的树。我知道用 inorder 遍历树,也知道用 preorder 遍历树,但是我不能从 inorder 和 preorder 一起创建树

4

2 回答 2

1

让我们通过例子来学习:

预购:= abdgheicfj 预购:= gdhbeiafjc

从预购我们可以说,

a是根。

从有序我们可以说,

g d h b e i是左子树和fjc右子树,

现在下一个根将是b(来自预购)

并且左右子树是gdhei从有序...

继续这样做...

于 2010-12-13T15:22:46.183 回答
0

如果您正确构建树,算法是如此简单!

preorder :

print(tree){
     printf(tree.value);
     print(tree.left);
     print(tree.right);
}

inorder :

print(tree) {
   print(tree.left);
   print(tree.value);
   print(tree.right);
}

更多信息在这里:http ://en.wikipedia.org/wiki/Tree_traversal

于 2010-12-13T13:16:41.097 回答