Durchwanderung: Wald und Binärbäume


Bei der Durchwanderung eines Binärbaumes müssen wir, um alle Knoten zu finden, die Wurzel eines Teilbaumes in der Regel mehrmals besuchen, und wir können noch auswählen, wann wir sie dabei bearbeiten wollen. Dabei sind mehrere Strategien gebräuchlich, die etwa gleich wichtig sind: Man könnte noch nach der Reihenfolge der Unterbäume differenzieren; meist lohnt sich das nicht.

Die drei Strategien sind unmittelbar auszuprogrammieren:

PROCEDURE prefix(b: btree; p: Bearbeiter);
BEGIN IF b <> NIL
      THEN p(b); (* bearbeite die Wurzel *)
           prefix(b^.left, p);  (* besuche l. UB *)
           prefix(b^.right, p); (* besuche r. UB *)
      END;
END prefix;
Dabei ist der Parameter p eine beliebige passende Bearbeitungs-Prozedur. Die Strategien infix  und postfix  gehen sinngemäß ebenso.

Auch für allgemeine Bäume und Wälder lassen sich entsprechende Durchwanderungsstrategien definieren, (eine Infix-Strategie macht allerdings keinen Sinn), und erfreulicherweise besteht eine enge Beziehung zu den Durchwanderungen des äquivalenten Binärbaumes:


zurück | Inhalt | Index | vor | Vorlesung

Klaus Lagally, 22. Februar 2000, 19:36