Консультации

По поводу решения

По поводу решения

от Иван Йцукен -
Number of replies: 2
Здесь можно решить иначе, кроме как удалить максимальный, перестроить дерево, и уже в новом найти максимум?
In reply to Иван Йцукен

Re: По поводу решения

от Денис Кириенко -
Это - дерево поиска. Найдите в нем максимальный элемент, а затем найдите предыдущий элемент. Ничего удалять и перестраивать не надо.

Вообще, в деревьях поиска полезно уметь искать следующий элемент за данным и предыдущий элемент для данного.
In reply to Денис Кириенко

Re: По поводу решения

от Никита Пушкин -
Я пользовался следующим алгоритмом:
1. Находим максимальный элемент, это самый правый его элемент или вообще корень дерева.
2. Если у этого максимального элемента нет левого поддерева, то в ответе выводим отца этого элемента. Если же левое поддерево есть, то находим максимальный элемент в левом поддереве(идем влево от максимального элемента и затем спускаемся вправо настолько, насколько можем).
Надеюсь, это решение кому-нибудь поможет.