【发布时间】:2011-12-08 07:02:51
【问题描述】:
我在维基百科上读到这个:
在 B 树中,内部(非叶)节点可以有可变数量的 某些预定义范围内的子节点。当数据被插入或 从节点中删除,其子节点的数量会发生变化。为了 保持预定义的范围,内部节点可以加入或拆分。 因为允许有一定范围的子节点,所以不需要 B 树 与其他自平衡搜索树一样频繁地重新平衡,但是 可能会浪费一些空间,因为节点未完全填满。
我们必须为 B 树指定这个范围。即使当我查看 CLRS(算法简介)时,它似乎也使用数组作为键和子元素。我的问题是 - 有没有办法通过将键和子项定义为列表而不是预定数组来减少这种空间浪费?是不是太麻烦了?
另外,在我的一生中,我无法在 btreeDeleteNode 上获得像样的伪代码。在这里的任何帮助也很感激。
【问题讨论】:
-
请尝试一次只问一个问题。