这棵树叫什么名字?

4
我正在寻找这种简单树的名称,它是二叉搜索树的一个很直观的推广。每个节点都有固定数量的最大键MI和最小键1。键是有序的。每个节点有MI+1个外部链接到子节点,类似于B树。子节点只包含父节点的两个相邻键之间的键值,就像B树一样。不同的是插入和删除操作。插入:从根开始。如果正在检查的节点中有空间,因为它没有MI个键,所以它不是满的,我们就在正确的位置添加我们的键。如果节点已满,我们则检查子节点。如果这个范围内没有子节点,我们创建一个仅包含我们的键的子节点。删除:如果我在一个节点中有“A C E”,我需要删除“E”,但在“C”和“E”之间的区间中有一个子节点,则获取该子节点中的最大元素,并将其替换为“E”(在这里可能需要递归,因为删除元素可能会导致从子节点移动另一个元素到父节点)。总体上说,这比较复杂,但通常需要将一个元素从子节点移动到拥有已删除键的节点中。我知道这个描述非常不严谨,但我无法找到似乎是二叉树的平凡推广的名称。

您说一个节点可以有多个MI键,但是在插入过程中却提到了“子节点”。请明确说明如何选择子节点作为关键信息。 - moinudin
@margoc:我想我提到了,如果当前节点已满,我们会转到链接在由两个已有键限定的范围内的子节点。因此,如果MI为4,并且我在根节点"A C M Z"中添加"E",我会尝试进入链接在A-C范围内的子节点。如果没有,则创建它。 - antirez
2个回答

4
我认为你的算法是针对非自平衡的“多路树”。请查看这里
B树是一种自平衡变体。术语并不完全一致。维基百科使用相同名称的含义不同(等同于多元),但我已经在足够多的地方看到了上述解释,因此使用它。

1
谢谢,我认为这完美地回答了我的问题! - antirez

0

这肯定是一棵K叉树,但我认为这只是一个通用术语,问题在于理解我描述的插入/删除算法是否被视为特殊树。 - antirez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接