Изменения

Перейти к: навигация, поиск

2-3 дерево

22 байта добавлено, 22:24, 10 мая 2015
Вставка элемента
Найдем сперва, где бы находился элемент, применив <tex>\mathtt{search(x)}</tex>. Далее проверим есть ли у этого узла родитель, если его нет, то в дереве всего один элемент {{---}} лист. Возьмем этот лист и новый узел, и создадим для них родителя, лист и новый узел расположим в порядке возрастания.
Если родитель существует, то подвесим к нему ещё одного сына. Если сыновей стало <tex>4</tex>, то разделим родителя на два узла, и повторим разделение теперь для его родителя (перед разделением обновим ключи).
splitParent('''Node''' t):
root.length = 2
сортируем сыновей у root
Если сыновей стало <tex>3</tex>, то ничего не делаем. Далее необходимо восстановить ключи на пути от новой вершины до корня:
updateKeys('''Node''' t):
Node a = t.parent
Анонимный участник

Навигация