Глава 4 Типовые алгоритмы обработки информации
____________________________________________________________________
p:= ptr_tree;
if not (p^.node = Elem) then begin
if p^.left <> nil then
search_node (Elem, p^.left, current_tree); if p^.right <> nil then
search_node (Elem, p^.right, current_tree);
end
else current_tree:= p;
end;
В процедуру передаются значение искомого узла Elem, само дерево
ptr_tree. Процедура возвращает ссылку на найденный узел current_tree.
Рекурсивная процедура удаления текущего поддерева:
procedure dispose_tree (ptr_tree: PTree); var
p: ^Tree; begin
if ptr_tree <> nil then begin
p:= ptr_tree;
if p^.left <> nil then begin
dispose_tree(p^.left); end;
if p^.right <> nil then begin
dispose_tree(p^.right);