我的数字从1到31,我需要创建一个二叉搜索树,这些数字的深度最小。我在考虑将31/2划分为16并将其作为根。之后划分16/2然后插入8,但这似乎不起作用。是否有算法知道插入数字的顺序,以便树可以具有最小的深度?
答案 0 :(得分:3)
如果你有数字1-31,31个数字,你想在根的左边有15个数字,在右边有15个数字。
所以根是16(不是31/2,而是31/2 + 1)。
重复相同的步骤,左子树有15个元素,所以你想在那个子树的每一边有七个数字。
所以左子树的根是8(这是15/2 + 1;这里有一个模式)
类似的计算给出了右子树的根。
等等。