Bei binären Bäumen ist die Anwendung der Rekursion oft eine sehr elegante Lösung. Sie ist leicht verständlich und dadurch meist fehlerfrei. Als Beispiel dient hier das Durchwandern eines Binärne Baumes in Sortierreihenfolge.
Beispiel: Durchlaufen eines binären Baums in der Sortierreihenfolge (in Pascal).
Procedure PrintTreeInOrder
(
tree: BinaryTree;
)
begin
if tree^.left <> nil then
PrintTreeInOrder(tree^.left);
Write('[',tree^.data,']');
if tree^.right <> nil then
PrintTreeInOrder(tree^.right);
end; (* InOrder *)
Eine iterative Lösung dieses Problems wäre sehr viel aufwendiger und könnte nicht in so wenigen Zeilen geschrieben werden. Bei Bäumen ist die
rekursive Lösung meist leichter zu verstehen als die iterative Lösung.
|