我被要求证明对于k-B树,必须至少有 2(k + 1)^(h-1)叶。
从我自己草绘一棵快速的3-B树,我一直到达那里必须至少有4片叶子让树到达高度2,但是2(k + 1)^(h-1)得到8片叶子。
我忽略了什么吗?
答案 0 :(得分:1)
首先,对于典型的B树问题*,有两种类型的节点,即内部节点和叶子节点。因此,指定内部节点的最大数量M和最大叶子节点数L是标准的。
但是假设你的意思是M和L是相同的数字,k,你的最小叶子3-B树高度2确实只有四片叶子(假设高度为h的标准定义)。
我认为你的问题在于公式的定义。 2(k + 1)^(h-1)将为您提供叶子中最小数量的数据元素,这些数据元素必须为8,因为每个叶子节点必须至少半满。因此,在此示例中,每个叶节点必须具有2个元素,从而在树中总共提供8个数据元素。但是,您只有4个叶节点。
这是一个很好的概述:
http://en.wikipedia.org/wiki/B%2B_tree
*我假设你指的是技术上的B +树,因为在实践中没有使用B树,尽管每个人都叫B +树B树。