11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

9.2. ADT für Binär-Bäume<br />

term(empty) = ’ ’<br />

term(Ü £ Ý℄℄) = ’(’ ++ term(Ü) ++ ’*’ ++ term(Ý) ++ ’)’<br />

term(Ü Ý ℄) = ’(’ ++ term(Ü) ++ ’+’ ++ term(Ý) ++ ’)’<br />

term(Ü ℄) = Ü<br />

rekursiver Aufruf von term zur Konstruktion eines Strings<br />

Auslesen eines Baumes in unterschiedlichen Notationen II<br />

Präfix-Schreibweise:<br />

term(empty) = ’ ’<br />

term(Ü £ Ý ℄) = ’*’ ++ term(Ü) ++ term(Ý)<br />

term(Ü Ý ℄) = ’+’ ++ term(Ü) ++ term(Ý)<br />

term(Ü ℄) = Ü<br />

Postfix-Schreibweise:<br />

term(empty) = ’ ’<br />

term(Ü £ Ý ℄) = term(Ü) ++ term(Ý) ++ ’*’<br />

term(Ü Ý ℄) = term(Ü) ++ term(Ý) ++ ’+’<br />

term(Ü ℄) = Ü<br />

Verallgemeinerung der Auslesevarianten<br />

systematisches Abarbeiten aller Knoten<br />

(engl. Traversal, Traversierung, ‘Baumdurchlauf’, kurz Durchlauf)<br />

¯ Infix-Anordnung: Inorder-Durchlauf<br />

¯ Präfix-Anordnung: Preorder-Durchlauf<br />

Beispiel: Stückliste dargestellt mit Einrückungen<br />

¯ Postfix-Anordnung: Postorder-Durchlauf<br />

Beispiel: Stückliste mit Aufsummierung (Bsp.: disk usage du in Linux)<br />

Rekursiver Pseudo-Code für Durchläufe<br />

inorder(k):<br />

Besuche linken Teilbaum mit inorder(k.left);<br />

Verarbeite k.Element;<br />

Besuche rechten Teilbaum mit inorder(k.right);<br />

preorder(k):<br />

Verarbeite k.Element;<br />

Besuche linken Teilbaum mit preorder(k.left);<br />

Besuche rechten Teilbaum mit preorder(k.right);<br />

167

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!