我正试图在教科书中解决这个问题,似乎无法完全理解它:
确定这些元素的插入顺序 将产生完美平衡的二进制搜索树。
元素是:{10,11,15,19,23,78,42,56,18,13,12,38, 47}
我能够构建BST并正确平衡它,但我不确定如何在构造树之前对元素进行排序以保证平衡树。
答案 0 :(得分:2)
首先,我们对这些元素进行排序,然后开始构建平衡的BST。现在我们需要选择一个元素作为树的根,以保证树平衡,所以我们从排序元素中选择中间元素。然后我们需要选择哪一个是左孩子。剩下两个已排序的子阵列 - 左边一个,右边一个。这是分而治之,这两个数组是原问题的子问题。然后我们从左排序子数组中选择中间元素作为左子节点,从右排序子数组中选择中间元素作为右子节点,依此类推。
因此,构造树以保证平衡树之前元素的顺序如下所示:
对于您提供的元素,顺序为:
19,12,42,10,15,23,56,11,13,18,38,47,78