我对不同站点上的许多文章感到非常困惑,这些文章涉及Binary Search Tree
从任何一个遍历(pre
,post
或in-order
)或其中任何两个的组合构建一个。例如,在这个页面上,它说给定pre
,post
或level
顺序遍历,连同in-order
遍历,可以构造BST
. 但是在这里和那里,他们向我们展示了如何单独构建一个BST
。pre-order
此外,他们在这里向我们展示了如何构造BST
from givenpre
和post-order
traversals。在其他一些站点中,我找到了一个BST
仅从post-order
遍历构造 a 的解决方案。
现在我知道给定inorder
和pre-order
遍历,可以唯一地形成一个BST
. 至于我提供的第一个链接,虽然他们说我们不能构造BST
frompre-order
和post-order
,但我不能对post-order
数组进行排序以获取它的inorder
遍历,然后使用它和pre-order
数组来形成BST
? 这与第四个链接中的解决方案相同还是不同?并且pre-order
仅给出,我可以对它进行排序以获得in-order
,然后使用它和pre-order
来获得BST
. 同样,这是否必须与链接 2 和 3 的解决方案不同?
具体来说,什么足以唯一地生成BST
?如果不需要唯一性,那么我可以简单地对其进行排序以获取遍历,并从中递归地in-order
构建 N 个可能的 s 之一。BST