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

Algorithm 插入2-3-4树时如何拆分节点?,algorithm,tree,insertion,multiway-tree,2-3-4-tree,Algorithm,Tree,Insertion,Multiway Tree,2 3 4 Tree,有关于如何在2-3-4树中拆分节点的规则吗 例如,如果我在2-3-4树中插入3、7、4、9: 它是按如下所示的这个(黄色)还是那个(绿色)进行拆分: 两者都有效吗?绿色。你需要考虑算法步骤。请查看有关插入步骤的详细信息。关键部分是在考虑下一次插入之前,通过将中间值向上移动一个级别来拆分一个4节点(有3个值) 1. Insert 3 into blank. Result: 3 (a 2-node) 2. Insert 7. Result: 3 - 7

有关于如何在2-3-4树中拆分节点的规则吗

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

它是按如下所示的这个(黄色)还是那个(绿色)进行拆分:


两者都有效吗?

绿色。你需要考虑算法步骤。请查看有关插入步骤的详细信息。关键部分是在考虑下一次插入之前,通过将中间值向上移动一个级别来拆分一个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.

绿色。你需要考虑算法步骤。请查看有关插入步骤的详细信息。关键部分是在考虑下一次插入之前,通过将中间值向上移动一个级别来拆分一个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.

但对于2-3棵树,我们在插入值后进行拆分。因此,中间值成为根值。因此,在4节点的情况下会有所不同?对于2-3树,在处理3节点时有2个值,因此没有中间值。这不是有2-3-4棵树的花瓶。事实上,我见过一些算法,插入值然后对2-3-4树进行拆分,因此看起来这两种算法都是有效的。实际上,在插入之前也使用了拆分。但对于2-3树,我们在插入值之后进行拆分。因此,中间值成为根值。因此,在4节点的情况下会有所不同?对于2-3树,在处理3节点时有2个值,因此没有中间值。这不是有2-3-4棵树的花瓶。事实上,我已经看到了一些算法,它们先插入值,然后对2-3-4树进行拆分,所以看起来这两种算法都是有效的。