вообще, хочу заметить, что по простоте и мощи эта штука очень перекликается с обероном. так же, как и оберон — выдумать её было не очень тривиально, но уже готовую можно просто использовать. по факту, весь нужный код можно просто запомнить (как я и сделал), и потом по памяти вставлять в проекты.

то есть, нет никакой причины НЕ использовать сбалансированое двоичное дерево место обычного; даже простейшая рекурсивная реализация «по учебнику» в силу сбалансированости гарантирует мизерную максимальную глубину рекурсии. если мы уже втыкаем двоичное дерево для скорости, то имеет смысл добавить туда тривиальную защиту от вырожденых случаев: в коде сложно ошибиться, его — в силу объёма — можно просто вызубрить, как стишок. и не надо таскать с собой никаких библиотек для сбалансированых деревьев.

мне кажется, AAtree должно входить в джентльменский набор паттернов любого оберонщика: и как полезная на практике штука, и как ещё одна демонстрация того, что простота — залог здоровья, хорошего пищеварения и приятного цвета лица.