首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >B树中的指针是什么?

B树中的指针是什么?
EN

Stack Overflow用户
提问于 2015-04-15 07:05:41
回答 2查看 3.9K关注 0票数 0

我很难理解B树中的指针是什么。它们是否与二叉树的内部节点相同?

如果是,为什么有不同的名字?

,如果不是,他们有什么不同?

在阅读这篇文章(摘自wiki for B+树)之后,我感到困惑:

B+树的主要价值在于存储数据,以便在面向块的存储上下文中进行高效检索,特别是文件系统。这主要是因为与二进制搜索树不同,B+树具有非常高的扇出(指向节点中子节点的指针数,1通常为100或更多),这减少了在树中查找元素所需的I/O操作数。

我在其他文章中读过这样的文章: B+树是B树,其中‘指针’不保存数据,只保存键。这个指针是什么?如果有人能解释为什么一个叶节点有这么多的“指针”,那就太棒了:)

编辑:

经过评论部分的讨论,事情开始变得更清晰了。然而,在这个 highly up-voted answer 中,B树和B+树之间的区别,海报上贴出了一个图像,其中粉红色的箭头从内部节点发出。上面写着“指向数据记录的指针”。但是数据不是位于树叶中吗,那么为什么这里的指针呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-15 10:38:19

wiki条目讨论了二叉树和btree之间的区别。在二叉树中,每个父母都有两个子树:一个大于另一个,另一个更小。在btree中,每个父母都可以有许多孩子(这是wikipedia文章中的“狂热”),并且通过指针实现了从这个父母到每个孩子的连接。

这里是一棵树的一部分。如您所见,节点"944;1011;1037;1087“有5个子节点,因此有5个指向不同节点的指针。这就是维基百科引用的内容。如果这是一棵二叉树,那么每个级别将只有一个键和两个子级。

票数 3
EN

Stack Overflow用户

发布于 2016-04-14 09:15:48

我认为您会感到困惑,因为您已经在B+树中看到了内部节点中的所有指针都指向了树中的其他块/节点。如果你愿意的话,你可以叫它们树指针。叶节点中的指针指向数据记录或块(指向下一个叶节点的指针除外)。如果需要,可以调用这些数据指针。

因此,您可以说指针指向两个不同的事物:节点或数据,但这只是组织您的想法的一种方式。指针仍然只是普通的指针,指向某种数据。

资料来源:数据库系统的基础(第6版),第6版,作者: Ramez Elmasri (作者),Shamkant B. Navathe (作者)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29643677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档