Модели и структуры данных



Рекурсивный смешанный обход



РЕКУРСИВНЫЙ СМЕШАННЫЙ ОБХОД
описывается следующим образом:
  • 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, то получим процедуры обратного нисходящего, обратного смешанного и обратного восходящего обходов.









Содержание    Назад    Вперед