Algorithm 只需按相同顺序插入节点,即可从预排序中删除BST

Algorithm 只需按相同顺序插入节点,即可从预排序中删除BST,algorithm,data-structures,tree,binary-search-tree,tree-traversal,Algorithm,Data Structures,Tree,Binary Search Tree,Tree Traversal,为了从给定的前序遍历构造BST,如果我尝试以与前序相同的顺序插入BST,我将得到BST。 所以,我们不需要通过对元素进行排序来创建顺序,或者执行任何其他算法 有没有一个例子表明,仅仅插入元素是无法构建树的?你是对的。。。您只需按照前序遍历给定的顺序插入节点即可重建树 插入的第一个节点必须放在正确的位置,因为它是根,并且预排序遍历总是将根放在第一位。在前序遍历中,后面是左子树的前序布局,然后是右子树。插入左子树节点时,从根向左插入,然后在该子树上递归应用相同的过程。右子树以相同的方式重建。使用归纳

为了从给定的前序遍历构造BST,如果我尝试以与前序相同的顺序插入BST,我将得到BST。 所以,我们不需要通过对元素进行排序来创建顺序,或者执行任何其他算法


有没有一个例子表明,仅仅插入元素是无法构建树的?

你是对的。。。您只需按照前序遍历给定的顺序插入节点即可重建树

插入的第一个节点必须放在正确的位置,因为它是根,并且预排序遍历总是将根放在第一位。在前序遍历中,后面是左子树的前序布局,然后是右子树。插入左子树节点时,从根向左插入,然后在该子树上递归应用相同的过程。右子树以相同的方式重建。使用归纳法,如果您愿意,您可以正式证明这一点


希望这有帮助

如果不是通过插入元素,一棵树还有什么可能被构造呢?我的意思是我不需要使用任何算法,我们只需要按照与前序相同的顺序插入它们。我有同样的疑问。为什么在给定预订单和顺序的情况下创建bst会有问题,而只能使用预订单?