243
правки
Изменения
→Поиск максимального поддерева, являющегося BST, в заданном двоичном дереве
'''if''' v.left != ''null''
'''if''' v.left.key < v.key '''and''' v.left.key > max
res++ = dfs(v.left, v.left.key, min)
'''if''' v.right != ''null''
'''if''' v.right.key > v.key '''and''' v.right.key < min
res++ = dfs(v.left, max, v.left.key)
'''return''' res
Наконец, рассмотрим процедуру <tex>\mathtt{dfsPrint}</tex>, выводящую максимальное дерево поиска. Так как <tex>maxdp</tex> уже посчитано, достаточно задать три параметра: корень поддерева и максимальное Она также будет принимать на вход вершину и минимальное допустимые значения. <tex>max</tex> и <tex>min</tex> нам понадобятся, чтобы взять только те вершиныграницы, которые принадлежат деревумежду которыми должны стоять ключи вершин-претендентов на попадание в поддерево.
'''procedure''' dfsPrint(v: '''Node''', max: '''T''', min: '''T''')