Изменения

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

Сверхбыстрый цифровой бор

100 байт убрано, 18:58, 8 июня 2013
Нет описания правки
Добавление вершины происходит так же, как и в обычном боре.
Удаление можно выполнять лениво - просто убирая пометку с листа. А можно хранить число пометок в поддереве и удалять вершину, если это число стало равным нулю.
 
===succ===
Поиск следующего элемента осуществляется проходом от корня до вершины, из которой не можем пойти в нужную сторону. Если не смогли пойти влево (по ребру 0), то ответ - минимум в правом поддереве. Если не смогли пойти вправо, поднимаемся наверх, пока являемся правым ребенком, если стали левым, то поднимаемся, пока у вершины нет правого ребенка (если такой ситуации нет, то запрос больше всех элементов). Тогда ответ - минимум в правом поддереве.
Простая Преимущества: простая реализация, занимает O(n * w) памяти (например, когда в боре хранятся два числа — w нулей и w единиц, получаем O(2*w)), все операции выполняются за O(w).
Хуже дерева Ван Эмде Боаса по скорости, но памяти занимает меньше.

Навигация