B-tree和B * -tree之间有什么区别,除了满满的要求?

时间:2011-05-31 06:47:57

标签: algorithm data-structures b-tree

我知道this问题,但问题是关于B-treeB+-tree。对不起,如果B*-tree有相似之处,但我找不到。


那么,这两棵树有什么区别?关于B*-trees的{​​{3}}非常短。

唯一的区别是"non-root nodes to be at least 2/3 full instead of 1/2"。但我想还有更多......可能只有一种树 - B-tree,只是有不同的常量(为了每个非根节点的完整性),没有两种不同的树,如果这是只有差异,对吧?

另外,还有一件事,这让我有了更多的分歧:

"A B*-tree should not be confused with a B+ tree, which is one where the 
leaf nodes of the tree are chained together in the form of a linked list"

所以,B+-tree有一些非常具体的东西 - 链表。 B*-tree的具体特征是什么,或者没有这种特征?


此外,维基百科的文章中没有任何外部链接/参考。有资源吗?文章,教程,什么?

谢谢!

2 个答案:

答案 0 :(得分:13)

<强>被修改 除了分钟之外没有区别。填充因子。

Page#489

The Great Book

从上面的书中,

  

B * - tree 是B树的一种变体,它要求每个内部节点至少有2/3满,而不是至少半满。

Knuth也完全定义了B *树(计算机编程艺术,第3卷)。

The Ubiquitous B-Tree”在 B * - 上有完整的小节。在这里,Comer完全按照Knuth和Corment等人的定义 B * - tree 树。同时也澄清了混淆的来源 - B * - 树搜索算法和Knuth设计的一些未命名的B树变体现在称为 B + -

答案 1 :(得分:1)

也许你应该看看Comer的无处不在的B-Tree(ACM Computing Surveys,1979)。

Comer在那里写了一些关于B * Tree的内容(在B-Tree及其变体部分中)。在该部分中,他还引用了一些关于该主题的论文。这应该可以帮助你自己做进一步的调查:)! (我不是你的研究员;))

但是,我不明白你引用一个部分说明B * Tree在叶子节点级别没有链表的地步。我很确定,这些节点也链接在一起。

关于只有一棵B树。实际上,你有。其他如B + Tree,Prefix B + Tree等只是标准B-Tree的变种。只要看一下Ubiquitous B-Tree这篇论文。