当我尝试打印BST级别时,这个问题促使我。
这是
Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
以上pre_order
和In_order
的BST的级别顺序序列是
[4, 2, 6, 1, 3, 5, 7, 8]
但是,对于相同的预订顺序,这个级别顺序序列似乎是可能的。 [4, 1, 5, 2, 6, 3, 7, 8]
。我不知道怎么做。我想弄清楚这一点。
我无法在纸张(图纸)中构建满足所有pre_order,In-order和level order序列的BST。
答案 0 :(得分:2)
如果你有顺序遍历与前/后顺序之一,这足以重建二叉树。此外,在BST(二元搜索树)的情况下,单独订购或预订就足够了。
在您的情况下,从预订4, 1, 2, 3, 5, 6, 7, 8
重建BST会产生以下BST:
4
/ \
1 5
\ \
2 6
\ \
3 7
\
8
再次给出了唯一的,级别顺序遍历[4,1,5,2,6,3,7,8]
。
另见:
答案 1 :(得分:1)
以下组合将生成唯一的二叉树(可以是BST)。
Inorder and Preorder.
Inorder and Postorder.
Inorder and Level-order.
所以在你的情况下,顺序&给出了预订单,它将生成唯一的二叉树,在您的情况下是BST,因此该级别的顺序对于该树是唯一的。
Pre-Order Sequence: 4, 1, 2, 3, 5, 6, 7, 8
In_order Sequence : 1, 2, 3, 4, 5, 6, 7, 8
SO树
level 0- 4
level 1- 1,5
level 2- 2,6
level 3- 3,7
level 4- 8
等级顺序是
4,1,5,2,6,3,7,8
在排序中总会有唯一的级别顺序遍历