Как генерировать максимально несбалансированные деревья AVL
Я написалЯзыковая библиотека C деревьев AVL как отсортированные контейнеры общего назначения, В целях тестирования я хотел бы иметь способ заполнить дерево таким образом, чтобы оно было максимально неуравновешенным, т.е. чтобы оно имело максимальную высоту для числа содержащихся в нем узлов.
У деревьев AVL есть хорошее свойство: если, начиная с пустого дерева, вы вставляете узлы в порядке возрастания (или убывания), дерево всегда точно сбалансировано (то есть имеет минимальную высоту для заданного числа узлов). Одна последовательность целочисленных ключей, которая генерирует точно сбалансированное дерево AVL Tn$4Я написал5$
k1 = 0kп + 1 = кn+1, т.е. кn = n-1$11Я написал12Я написал13$n которые все максимальноООНсбалансирован.
Я также был бы заинтересован в решении, где только последнее дерево, Tn, максимально неуравновешен (число узлов n будет параметром алгоритма).
Решение, удовлетворяющее ограничению
$20Языковая библиотека C деревьев AVL как отсортированные контейнеры общего назначения21$n$22Языковая библиотека C деревьев AVL как отсортированные контейнеры общего назначения23$n) + 1 ≤ 2 nпредпочтительнее, но не обязательно. Целевой диапазон 4 n вместо 2 n может быть разумной целью.
Я не смог найти в Интернете ничего относительно генерации, путем вставки, деревьев AVL максимальной высоты. Конечно, последовательность генерируемых деревьев, которую я ищу, будет включать в себя все так называемые деревья Фибоначчи, которые являются деревьями AVL заданной глубины с минимальным количеством узлов. Как ни странно, английская Википедия даже не упоминает деревья Фибоначчи (ни числа Фибоначчи!) В статье о деревьях AVL, в то время как немецкая Википедия имеет очень хорошиестатья полностью посвящен им. Но я все еще в неведении относительно моего вопроса.
С языком немного вертеться хаки приветствуются.