Цитата:
|
Или, еще вариант: можно оставлять "окна" для последующих вставок.
|
Можно попробовать разложить дерево в массив и сохранять список индексов, из которых удалялись элементы (один элемент - значение, 2 следующих - индекс правого и левого поддерева)
Хотя AVL-дерево так эффективно как куча на массив не ляжет. Плюс там линкованный список разложить на массив - уже весело, а реализовывать вращение поддеревьев, которые лежат в массиве - там сплошное жонглирование индексами будет (и не продебажить - у тебя линейная структура с индексами заплетёнными в клубок)
Вот в AS3 всегда так: нельзя просто взять и реализовать эффективный алгоритм с Википедии - накладные расходы на поддержание структуры данных весь прирост съедят. Да и в Java, наверно, с этим не легче.