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

时间:2014-02-21 00:54:04

标签: tree binary-search-tree

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

  • 确定这些元素的插入顺序 将产生完美平衡的二进制搜索树。

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

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

1 个答案:

答案 0 :(得分:2)

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

因此,构造树以保证平衡树之前元素的顺序如下所示:

  • 对元素进行排序。
  • 第一个元素是已排序元素的中间元素。
  • 第二个元素是左排序数组的中间元素。
  • 第三个元素是右排序数组的中间元素。
  • 等等。

对于您提供的元素,顺序为:
19,12,42,10,15,23,56,11,13,18,38,47,78