二叉搜索树的最小和最大高度,2-3-4树和B树

时间:2010-05-12 10:24:38

标签: algorithm binary-tree

任何人告诉我你如何找到B树,2-3-4棵树和二元搜索树的最小/最大高度?

感谢。

PS:这不是作业。

6 个答案:

答案 0 :(得分:5)

2-4棵树的最小和最大高度

对于2-4树的最大高度,我们每个节点将有一个密钥,因此它的行为就像二进制搜索树

级别0 = 1

的键

级别1 = 2的键

级别2 = 4的键,依此类推。 。 。

在每个级别添加键的总数,我们得到一个GP来解决,我们将得到树的最大高度。

因此, height = log 2 (n + 1) - 1

解决它总共10 ^ 6个键我们将得到:

⇒1*(2 ^ 0 + 2 ^ 1 + 2 ^ 2 + ... ... + 2 ^ h)= 10 ^ 6

⇒1*(2 ^(h + 1) - 1)= 10 ^ 6

⇒h= log 2 (10 ^ 6 + 1) - 1

⇒2-4树的最大高度,总共10 ^ 6个键是19

对于2-4树的最小高度,我们将为每个节点提供三个密钥(最大可能数量)。

级别0 = 3的键

等级1的键= 3 *(4)

级别2的键= 3 *(4 ^ 2),依此类推。 。 。

因此, height = log 4 (n + 1) - 1

在每个级别添加键的总数,我们将获得GP解决方案,我们将获得最小高度。解决它总共10 ^ 6个键我们得到:

⇒3*(4 ^ 0 + 4 ^ 1 + 4 ^ 2 + ... ... + 4 ^ h)= 10 ^ 6

⇒(4 ^(h + 1) - 1)= 10 ^ 6

⇒h= log 4 (10 ^ 6 + 1) - 1

⇒2-4树的最小高度为9

二进制搜索树

对于最大高度,我们将有一条长度 n(节点总数)的连续链,因此给我们一个等于 n-1 的高度(当高度从0)。

对于最小高度,我们将拥有一个完美平衡的树,如前所述,我们的高度将等于 log 2 (n + 1)-1

答案 1 :(得分:1)

如果你想知道最长树枝的长度,你必须遍历整棵树,记下“到目前为止最长的树枝”。

答案 2 :(得分:0)

  1. 从根节点开始并查找其子节点
  2. 如果它有子节点那么      选择最左边的孩子并将其他孩子存储在任何一个数据结构中 否则
         如果该节点的高度最大直到现在为止             将其设置为最大
         万一 如果

  3. 结束
  4. 遍历树的所有节点,最后得到的是最大高度

  5. 类似的你可以做到最低

答案 3 :(得分:0)

二叉树的最小高度为O(log n),最大值为O(n),具体取决于它的平衡程度。
Wikipedia has a lovely bit about B Tree Heights
我不熟悉2-3-4树,但根据维基百科,他们有类似的红黑和B树的等距,所以上面的链接也应该教你这个。

答案 4 :(得分:0)

对于B树,最小/最大高度取决于为实施选择的分支因子。

答案 5 :(得分:0)

当按顺序插入输入时,二叉树的最大高度为n,当树完全平衡时,最小高度当然是log_2(n)。当以随机顺序插入输入时,平均高度约为1.39 * log_2 n

我对b树不太熟悉,但当完美平衡时,最小高度当然是log_m(n)(m是每个节点的子节点数)。根据维基百科,最大高度为log_(m/2)(n)

当树只包含2个节点时,2-3棵树的最大高度为log_2(n),当树只包含3个节点时,最小高度约为log_3(n) [~0.631 log_2(n)]