除了对完整性的要求之外,B 树和 B* 树还有什么区别?

发布于 2024-11-11 03:23:57 字数 958 浏览 3 评论 0原文

我知道这个问题,但它是关于B-treeB+-tree。抱歉,如果有类似的 B*-tree,但我找不到这样的。


那么,这两棵树有什么区别呢?关于 B*-tree 的维基百科文章 非常短。

此处指出的唯一区别是“非根节点至少为 2/3,而不是 1/2”。但我想还有更多的东西......可能只有一种树 - B 树,只是具有不同的常量(为了每个非根节点的完整性),并且没有两种不同的树,如果这是唯一的区别,对吗?

另外,还有一件事让我想到了更多差异:

"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有什么具体特征,或者没有这样的特征?


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

谢谢!

I know about this question, but it's about B-tree and B+-tree. Sorry, if there's similar for B*-tree, but I couldn't find such.


So, what is the difference between these two trees? The wikipedia article about B*-trees is very short.

The only difference, that is noted there, is "non-root nodes to be at least 2/3 full instead of 1/2". But I guess there's something more.. There could be just one kind of tree - the B-tree, just with different constants (for the fullness of each non-root node), and no two different trees, if this was the only difference, right?

Also, one more thing, that made me thing about more differences:

"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"

So, B+-tree has something really specific - the linked list. What is the specific characteristic of B*-tree, or there isn't such?


Also, there are no any external links/references in the wikipedia's article. Are there any resources at all? Articles, tutorials, anything?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

追风人 2024-11-18 03:23:57

已编辑
除了分钟之外没有区别。填充因子。

第 489 页

《伟大的书》</a
(来源:
mit.edu

从上面的书来看,

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

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

无处不在的 B 树”在 B 上有一个完整的小节-*。在这里,Comer 与 Knuth 和 Corment 等人完全相同地定义了 B-tree* 树。但也澄清了混乱的来源 --B-tree* 树搜索算法和一些未命名的 B Knuth 设计的树变体现在称为 B+-

Edited
No difference other than min. fill factor.

Page #489

The Great Book
(source: mit.edu)

From the above book,

B-tree* is a variant of a B-tree that requires each internal node to be at least 2/3 full, rather than at least half full.

Knuth also defines the B* tree exactly like that (The art of computer programming, Vol. 3).

"The Ubiquitous B-Tree" has a whole sub-section on B-trees*. Here, Comer defines the B-tree* tree exactly as Knuth and Corment et al. do but also clarifies where the confusion comes from --B-tree* tree search algorithms and some unnamed B tree variants designed by Knuth which are now called B+-trees.

深居我梦 2024-11-18 03:23:57

也许您应该看看 Comer 的《Ubiquitous B-Tree》(ACM 计算调查,1979 年)。

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

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

关于只有一棵 B 树。事实上,你有这个。其他的如B+Tree、Prefix B+Tree等只是标准B-Tree的变体。只要看看论文《无处不在的 B 树》即可。

Maybe you should look at Ubiquitous B-Tree by Comer (ACM Computing Surveys, 1979).

Comer writes there something about the B*Tree (In the section B-Tree and its variants). And in that section, he also cites some more paper about that topic. That should help you to do further investigations on your own :)! (I'm not your researcher ;) )

However, I don't understand the point where you cite a part which says that the B*Tree does not have a linked list in the leaf node level. I'm pretty sure, that also those nodes are linked together.

Regarding having only one B-Tree. Actually, you have that. The other ones like B+Tree, Prefix B+Tree and so on are just variants of the standard B-Tree. Just look at the paper Ubiquitous B-Tree.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文