任何人请告诉我你如何找到B树,2-3-4棵树和二元搜索树的最小/最大高度?
感谢。
PS:这不是作业。
答案 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)
如果它有子节点那么
选择最左边的孩子并将其他孩子存储在任何一个数据结构中
否则
如果该节点的高度最大直到现在为止
将其设置为最大
万一
如果
遍历树的所有节点,最后得到的是最大高度
类似的你可以做到最低
答案 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)]
。