可能的重复:
构造一棵树
嗨,我怎样才能用java编写一个程序,以便创建一个具有给定预序和中序的树。我知道用 inorder 遍历树,也知道用 preorder 遍历树,但是我不能从 inorder 和 preorder 一起创建树
可能的重复:
构造一棵树
嗨,我怎样才能用java编写一个程序,以便创建一个具有给定预序和中序的树。我知道用 inorder 遍历树,也知道用 preorder 遍历树,但是我不能从 inorder 和 preorder 一起创建树
让我们通过例子来学习:
预购:= abdgheicfj 预购:= gdhbeiafjc
从预购我们可以说,
a
是根。
从有序我们可以说,
g d h b e i
是左子树和fjc
右子树,
现在下一个根将是b
(来自预购)
并且左右子树是gdh
和ei
从有序...
继续这样做...
如果您正确构建树,算法是如此简单!
preorder :
print(tree){
printf(tree.value);
print(tree.left);
print(tree.right);
}
inorder :
print(tree) {
print(tree.left);
print(tree.value);
print(tree.right);
}