【问题标题】:Why does this B+ tree have repeated elements?为什么这棵 B+ 树有重复的元素?
【发布时间】:2011-02-05 20:04:15
【问题描述】:

在这棵 B+ 树中,5 出现了两次。

B+ tree

【问题讨论】:

  • 3 也出现了两次,但 7 没有。这是为什么呢?

标签: b-tree


【解决方案1】:

来自Wikipedia

在 B+ 树中,与 B-tree 相比,所有记录都存储在树的叶级;只有键存储在内部节点中。

非叶​​子节点中的每个键都必须在其中一个子节点中重复,依此类推,直到它们到达叶子节点,因为这是存储数据的地方。在 B 树中,数据可以存储在非叶节点中,因此无需在树的下方重复键。

如果您注意到,键 3 在 B+ 树的图中也出于相同的原因重复 - 数据不能存储在根节点中。它必须存储在子节点中,它是一个叶子节点。

【讨论】:

  • 那么为什么没有7的索引键呢?
  • @Phenom:为什么会有? 7 位于叶节点中,因此可以将数据与密钥一起存储。
  • 3 和 5 也在叶节点中。
【解决方案2】:

B+ 树与 B 树的区别在于所有记录都出现在叶节点中。这就是为什么 5 出现在底行的原因。

在 B+ 树(如 B 树)中,键出现在叶子上方的节点中,以便可以找到记录。这就是为什么 5 出现在倒数第二行的原因。

所以 5 出现了两次。一次用于查找记录,一次用于记录本身。

【讨论】:

    【解决方案3】:

    来自Wikipedia

    它是一个动态的、多级索引,每个索引段(通常称为“块”或“节点”)中的键数有最大和最小界限。在 B+ 树中,与 B 树不同,所有记录都存储在树的叶层;只有键存储在内部节点中。

    顶部的3和5是索引键,指出每个块中的最大键。

    【讨论】:

    • 那么为什么没有7的索引键呢?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多