【问题标题】:deletion on B+ treeB+树上的删除
【发布时间】:2011-10-01 16:56:09
【问题描述】:

作为一名学生,我一直在尝试自己在 C 中实现 B+ 树。插入没问题,但删除让我望而却步。我的问题之一是: 是否可以在叶节点中的键已删除时保留内部节点中的键? 当内部节点不是叶子的父节点时,可能会发生这种情况。 我的描述够清楚吗?有没有人有类似经历的?

【问题讨论】:

  • 您想要是或否的答案吗?这是作业吗?
  • “可以保留钥匙...” 你的意思是“留下钥匙...”吗?这句话把我吓坏了。

标签: b-tree


【解决方案1】:

在处理数据结构时应该问自己一个问题:“什么是不变量?”对于 B+ 树,一些不变量是:

  • 记录存储在叶节点中,
  • 叶节点必须至少半满。

因此,如果您决定 B+ 树允许您保留不再对应于记录的键,那很好。只要确保您的插入和搜索算法在您特定的一组不变量下仍然有效。

一般来说,在任何类型的树中遇到与其中一条记录不对应的键有点奇怪。我还希望在具有大扇出的 B+ 树中纠正它的成本相当小。

【讨论】:

    猜你喜欢
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    相关资源
    最近更新 更多