我查看了GitHub 上 JavaScript 中B+树的每个示例,并尝试将其中的一个简化为半可读的代码。但是我仍然不明白keys
每个内部节点的数组结构是什么。钥匙长什么样?您如何在 get/insert/remove 算法中使用它们?特别是对于这个问题,我想将 B+tree 视为外部数组或排序列表。所以我希望“键”是一个整数(数组中项目的索引)。我该怎么做呢?什么是示例 JSON 演示,显示在这种情况下简单的 B+树会是什么样子?
{
type: 'tree',
keys: [?],
children: [
{
type: 'internal',
keys: [?],
children: [
{
type: 'leaf',
value: { foo: '123' }
},
{
type: 'leaf',
value: { foo: '234' }
}
]
},
{
type: 'internal',
keys: [?],
children: [
{
type: 'leaf',
value: { foo: '345' }
},
{
type: 'leaf',
value: { foo: '456' }
}
]
}
]
}
钥匙还能做什么?我知道它们以某种方式用于查找,但是如何?
假设基地有 32 个内部节点,每个内部节点都有 32 个内部节点,每个内部节点都有一堆叶子。内部节点中的键是什么?
我想在 JavaScript 中实现一个健壮的 B+树,现在很难理解 B+树的基础知识。