繁体   English   中英

创建深度最小的二叉搜索树

[英]Creating a binary search tree with the smallest depth

我有1到31之间的数字,我需要创建一个二进制搜索树,其中这些数字的深度最小。 我当时正在考虑将31/2除以16。 在除以16/2并接着插入8之后,但这似乎不起作用。 是否有一种算法可以知道以什么顺序插入数字,从而使树的深度尽可能小?

如果您有1到31的数字,则有31个数字,则需要在根的左边15个数字,在右边15个数字。
所以根是16(不是31/2,而是31/2 +1)。

重复相同的过程,左边的子树有15个元素,因此您希望该子树的每一侧有七个数字。
因此,左子树的根为8(即15/2 + 1;这里有一个模式)。
类似的计算给出了右子树的根。

等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM