【发布时间】:2016-07-12 10:42:54
【问题描述】:
我有从 1 到 31 的数字,我需要创建一个具有最小深度的数字的二叉搜索树。我正在考虑除以 31/2 并将 16 作为我的根。之后除以 16/2 并插入 8,但这似乎不起作用。是否有一种算法可以知道以什么顺序插入数字以便树可以具有最小的深度?
【问题讨论】:
-
有些算法允许树平衡更适合这种情况。这样插入顺序无关紧要,但树是最小的。 AVL 很接近,内部路径缩减树甚至更好(保证最低限度),但可能需要更多时间。
-
大部分无关紧要:31/2 应该给根 15,而不是 16。
标签: c++ algorithm binary-search-tree depth