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