是否可以使用预订和后序序列创建二元非唯一树?
如果是这样,如何做到这一点?例如,我如何为:
预订:
B C I J K H D E F G
后序:
I H K J C G F E D B
有多少人可以?
答案 0 :(得分:3)
预购psedo-code:
preorder (tree)
{
if tree isn't empty then
{
print key[tree]
preorder left[tree]
preorder right[tree]
}
}
和邮政订单是:
postorder (tree)
{
if tree isn't empty then
{
preorder left[tree]
preorder right[tree]
print key[tree]
}
}
所以按顺序我们可以得出结论:
从订单后订单我们可以得出结论:
从这里开始就像数独:
是的:通过使用预订和后序输出,您只能以一种方式构建树。
答案 1 :(得分:1)
是的,可以构造具有相同的前后序列的不同二叉树。要生成这样不同的树,请查找子项,其中左侧或右侧子项为空,只需交换子项。
这个最小的例子
a a
/ vs. \
b b
显示两棵树都有预订a b
和预订b a
。