РЕКУРСИВНЫЙ СМЕШАННЫЙ ОБХОД

описывается следующим образом:

· 1). Восходящий обход левого поддерева;

· 2). Восходящий обход правого поддерева;

· 3). Обработка корневой вершины.

Текст программы процедуры рекурсивного обхода (r_Postorder) демонстрируется в програмном примере 6.9.

{ ==== Программный пример 6.9. ===== }

(*--------- Рекурсивное выполнение нисходящего обхода -----*)

Procedure r_Postorder (t: TreePtr);

Begin

if t = nil then begin writeln('Дерево пусто'); exit; end;

if t^.left <> nil then r_Postorder (t^.left);

if t^.right <> nil then r_Postorder (t^.right);

(*-------------- Обработка данных звена --------------*)

................................

End; { r_Postorder }

Если в рассмотренных выше процедурах поменять местами поля left и right, то получим процедуры обратного нисходящего, обратного смешанного и обратного восходящего обходов.