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