У меня есть двоичное дерево поиска в Java, которое содержит объект в каждом узле, объекты были добавлены в соответствии со свойством name. Который при прохождении перечисляет объекты в алфавитном порядке в соответствии с их именем, что хорошо. Хотя мне нужен метод, который будет перечислять объекты в порядке убывания в соответствии со свойством age. Так что в основном мне нужно временно отсортировать дерево, чтобы распечатать содержимое по порядку.
То, что я до сих пор придумал, - это обойти дерево и добавить каждый узел во временный массив, когда он закончил, массив подвергается сортировке слиянием. Это работает, но кажется относительно неэффективным и повышает сложность. Это первое двоичное дерево, которое мне пришлось создать, поэтому мой метод, вероятно, не нужен.
Наверное, мой вопрос в том, есть ли более эффективный способ приближения или размышления об этой проблеме для повторной сортировки дерева? Поскольку дерево будет совершенно случайным (с точки зрения возраста), я не могу придумать другого пути. Любая помощь будет принята с благодарностью.