algorithm - 二叉搜索树的最小高度插入顺序

标签 algorithm binary-search-tree

因此,在类里面,我的练习之一是找到导致具有最小高度和最大高度的二叉搜索树的插入顺序。插入的数字是[1,2,3,4]。最终的答案是这样的:

answer

图3.9: diagram 3.9

但是我无法理解的是,为什么插入订单 1324,1342,4213,4231 不包含在导致最小高度的插入订单中,因为从技术上讲,这些不会导致最小高度为 2 的 BST还有吗?

提前谢谢您!

最佳答案

有趣的是,文本中没有提到这四种情况。它们没有最坏情况下的高度,但也不是最小的。树有两个特征:

  • 从根到任意节点的最大深度
  • 从根到任意节点的平均深度

像 1432 这样的树,最大深度为 3,平均深度 (0+1+2+3)/4 = 1.50
像 3124 这样的树的最大深度为 2,平均深度 (0+1+1+2)/4 = 1.00
像 1324 这样的树的最大深度为 2,但平均深度 (0+1+2+2)/4 = 1.25

最好的树具有最小的平均值以及最小的最大深度。换句话说,最好的树的每一层(除了最后一层)都被完全填满。

例如,即使下面的两棵树具有相同的节点数和相同的最大深度,左侧的树也不是最小高度树,因为它缺少第三层的节点(这意味着平均深度将大于右侧的树)。

enter image description here

关于algorithm - 二叉搜索树的最小高度插入顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49714321/

相关文章:

python - 蒙特卡罗树搜索 Tic-Tac-Toe -- Poor Agent

algorithm - 是否有任何模式/算法可以知道动态树中某些属性的数量?

c++ - 从二叉搜索树中删除一个值

c++ - 二叉树中的段错误

java - 广度优先搜索 100% 无效

java - 如何反转选择排序

c - 修剪二叉树数据c

java - 在插入 BST 期间获取实际索引

ruby - 使用 Ruby bang 方法时匹配英文单词算法停止工作

algorithm - Splay 树最坏情况搜索时间