algorithm - 插入2-3-4树时如何拆分节点?

标签 algorithm tree insertion multiway-tree 2-3-4-tree

2-3-4树中的节点如何拆分是否有规则?

例如如果我将 3、7、4、9 插入到 2-3-4 树中:

它会像这样(黄色)还是那样(绿色)拆分,如下所示:

enter image description here

都有效吗?

最佳答案

绿色。您需要考虑算法步骤。查看the wikipedia page用于插入步骤。关键部分是在考虑下一个插入之前,通过将中间值向上移动一个级别来拆分一个 4 节点(具有 3 个值)。

1. Insert 3 into blank. Result: 3         (a 2-node)
2. Insert 7.            Result: 3 - 7     (a 3-node)
3. Insert 4.            Result: 3 - 4 - 7 (a 4-node)
5. Insert 9. There is already a 4-node, so this must be split.
   The split will be to move 4 up a level, and 3 and 7 are now child nodes of 4
   (like your green diagram). 9 is then added next to the 7.

关于algorithm - 插入2-3-4树时如何拆分节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42295308/

相关文章:

javascript - 从 dhtmlx 树中的 json 动态扩展父节点的函数

javascript - 插入新元素时如何平滑移动?

algorithm - 如何找到共振行星

c++ - 将军树高度

sql - 先排序再分组,反之亦然 : which is faster?

python - onehotencoder 的用法

python - 引用单行树中的各个字典

java - 将节点插入链表

c++ - 如何在指定大小的数组中移动和插入元素

algorithm - 检查 2 个数组是否具有相同的内容,忽略顺序,不排序。什么是最有效的算法