Рекурсивный нисходящий обход.



РЕКУРСИВНЫЙ НИСХОДЯЩИЙ ОБХОД.

Алгоритм существенно упрощается при использовании рекурсии. Так, нисходящий обход можно описать следующим образом:

  • 1). Обработка корневой вершины;
  • 2). Нисходящий обход левого поддерева;
  • 3). Нисходящий обход правого поддерева.

Алгоритм рекурсивного нисходящего обхода реализован в программном примере 6.5.

{=== Программный пример 6.5. Рекурсивное выполнение нисходящего обхода ===} Procedure r_Preorder (t: TreePtr); begin if t = nil then begin writeln('Дерево пусто'); exit; end; (*------------------- Обработка данных звена --------------*) ................................ if t^.left <> nil then r_Preorder(t^.left); if t^.right <> nil then r_Preorder(t^.right); End; { r_Preorder }



Содержание раздела