Рекурсивный нисходящий обход.
РЕКУРСИВНЫЙ НИСХОДЯЩИЙ ОБХОД.
Алгоритм существенно упрощается при использовании рекурсии. Так, нисходящий обход можно описать следующим образом:
- 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 }