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''')
