Tree 元素的插入顺序将导致完全平衡的二叉搜索树?

Tree 元素的插入顺序将导致完全平衡的二叉搜索树?,tree,binary-search-tree,Tree,Binary Search Tree,我试图在教科书中解决这个问题,但似乎无法完全理解: 确定以下元素的插入顺序: 将产生一个完全平衡的二叉搜索树 这些元素是:{10,11,15,19,23,78,42,56,18,13,12,38, 47} 我能够构建BST并正确平衡它,但我不确定在构建树之前如何排序元素以保证平衡树。首先,我们对这些元素进行排序,然后开始构建平衡BST。现在我们需要选择一个元素作为树的根,以保证树的平衡,所以我们从排序后的元素中选取中间元素。然后我们需要选择哪一个是左边的孩子。左侧有两个已排序的子数组,一个在

我试图在教科书中解决这个问题,但似乎无法完全理解:

  • 确定以下元素的插入顺序: 将产生一个完全平衡的二叉搜索树

  • 这些元素是:{10,11,15,19,23,78,42,56,18,13,12,38, 47}


我能够构建BST并正确平衡它,但我不确定在构建树之前如何排序元素以保证平衡树。

首先,我们对这些元素进行排序,然后开始构建平衡BST。现在我们需要选择一个元素作为树的根,以保证树的平衡,所以我们从排序后的元素中选取中间元素。然后我们需要选择哪一个是左边的孩子。左侧有两个已排序的子数组,一个在左侧,另一个在右侧。这里是分治,这两个数组是原始问题的子问题。然后从左排序子数组中选择中间元素作为左子节点,从右排序子数组中选择中间元素作为右子节点,依此类推

因此,在构建树以保证平衡树之前,元素的顺序确定如下:

  • 对元素进行排序
  • 第一个元素是排序元素中的中间元素
  • 第二个元素是左排序数组的中间元素
  • 第三个元素是右排序数组中的中间元素
  • 等等
对于您提供的元素,顺序为:

19、12、42、10、15、23、56、11、13、18、38、47、78

提示:如果您拍摄了正确的插入顺序,然后将胶片反向运行,会怎么样?回答太棒了!谢谢:)我必须完成一个非常类似的任务,但是,我们的树最终必须是左撇子(从左到右叶,没有间隙)。在我的作业中,有没有一种简单的方法可以使用你描述的方法?