Почему раскол node при вставке в дерево 2-3-4?

В изображенном 2-3-4 tree ниже (из Данные Структуры и алгоритм в Java, 2-е изд.), почему вставка 99 вызывает разделение node 83/92/104, когда кажется, что 99 может быть вставлено в правый дочерний элемент (C child, в место сразу после 97) без какого-либо разделения?

enter image description here

5
задан user46874 03 авг. '12 в 2:24
источник поделиться

2 ответов

Вставка 99 в C будет ОК в том, что он сохранит все инварианты, но алгоритм проще вообще, если вставка всегда расширяет 4-узлы по пути вниз. Тогда всегда найдется место для любых необходимых подъемов и поворотов. Это может помочь сравнить случай, когда C уже является самим 4 node.

2
ответ дан xan 03 авг. '12 в 18:32
источник поделиться

Чтобы сбалансировать дерево, чтобы гарантировать производительность. Вставка рекурсивна, и она попадает в 4- node (node с 3 значениями и 4 детьми), что приведет к расколу.

0
ответ дан Markus Mikkolainen 03 авг. '12 в 2:28
источник поделиться

Другие вопросы по меткам