243
правки
Изменения
→Проверка того, что заданное дерево является деревом поиска
Функция принимает на вход исследуемую вершину, а также два значения: <tex>\mathtt{min}</tex> и <tex>\mathtt{max}</tex>, которые до вызова функции равнялись <tex> \infty </tex> и <tex> -\infty </tex> соответственно, где <tex> \infty </tex> — очень большое число, т.е. ни один ключ дерева не превосходит его по модулю. Казалось бы, два последних параметра не нужны. Но без них программа может выдать неверный ответ, так как сравнения только вершины и её детей недостаточно. Необходимо также помнить, в каком поддереве для более старших предков мы находимся. Например, в этом дереве вершина с номером ''8'' находится левее вершины, в которой лежит ''5'', чего не должно быть в дереве поиска, однако после проверки функция бы вернула <tex>\mathtt{true}</tex>.
'''bool''' check(v : '''Node''', min: '''int''', max: '''int'''): <font color="green">// min и max — минимально и максимально допустимые значения в вершинах поддерева.</font>