Моя проблема заключается в следующем:
У меня есть бинарное дерево поиска с ключами: a1<a2<...<an
, проблема состоит в том, чтобы напечатать все пары (a_i, a_i+1) в дереве (где i={1,2,3,...}) с использованием рекурсивного алгоритма в O(n) времени без какой-либо глобальной переменной и с использованием O(1) дополнительного пространства. Пример: Пусть ключи будут: 1,2, ..., 5 Пары, которые будут напечатаны: (1,2) (2,3) (3, 4) (4, 5)
Таким образом, вы не можете выполнить неупорядоченный обход дерева и найти преемника/предшественника для каждого узла. Потому что это займет O(nh) времени, и если дерево сбалансировано, оно будет O(nlgn) для всего дерева.