Изменения

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

2-3 дерево

5 байт добавлено, 00:30, 11 мая 2015
Нахождение m следующих элементов
*<tex>\mathtt{right}</tex> {{---}} указывает на правый лист,
*<tex>\mathtt{left}</tex> {{---}} указывает на левый лист.
Пусть <tex>t</tex> {{- --}} добавленный узел.
Изменим <tex>\mathtt{insert}</tex> следующим образом: в самом конце, после того как мы уже обновили все ключи, найдем <tex>\mathtt{next(t)}</tex> и запишем ссылку на него в <tex>\mathtt{t.right}</tex>. Аналогично с левым.
Пусть <tex>t</tex> {{---}} удаляемый узел. Изменим <tex>\mathtt{insert}</tex> следующим образом: в самом начале, до удаления <tex>t</tex>, найдем следующий (<tex>mathtt{next}</tex>) и запишем в (<tex>mathtt{next.left}</tex>) правый лист относительно <tex>t</tex>. С левым поступим аналогично.
В итоге, мы имеем двусвязный список в листьях, и чтобы нам вывести <tex>m</tex> элементов, нам достаточно один раз найти нужный элемент и пробежаться вправо на <tex>m</tex> элементов.
143
правки

Навигация