元素的插入顺序将导致一个完美平衡的二进制搜索树



我试图在课本上解决这个问题,但似乎无法完全理解:

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

  • 元素是:{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

最新更新