24.11.2013 Aufrufe

Teil 7: Bäume Beispiele (1)

Teil 7: Bäume Beispiele (1)

Teil 7: Bäume Beispiele (1)

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.

InOrder-Durchlauf für Binärbäume<br />

Algorithmus<br />

void inOrder(Node* p)<br />

{<br />

if (p != 0)<br />

{<br />

inOrder(p->left);<br />

bearbeite(p->data);<br />

inOrder(p->right);<br />

}<br />

}<br />

Beispiel<br />

*<br />

- c<br />

Durchlaufreihenfolge:<br />

a – b * c<br />

a<br />

b<br />

O. Bittel; Sept. 2008 Programmiertechnik 2 - <strong>Bäume</strong> 7-17<br />

LevelOrder-Durchlauf für Binärbäume<br />

Algorithmus<br />

Die Knoten werden ebenenweise in einer Schlange (Queue) gespeichert<br />

und in einer while-Schleife abgearbeitet.<br />

void levelOrder(Node* p)<br />

{<br />

Queue queue;<br />

queue.push(p); // Ebene 0<br />

}<br />

while ( !queue.empty() )<br />

{<br />

Node* q;<br />

// Schreibe vorderstes Element aus Schlange<br />

// nach q und lösche Element aus Schlange:<br />

queue.front(q);<br />

queue.remove();<br />

if (q != 0)<br />

{<br />

bearbeite(q->data);<br />

queue.push(q->left);<br />

queue.push(q->right);<br />

}<br />

}<br />

Beispiel<br />

*<br />

- c<br />

a b<br />

Durchlaufreihenfolge:<br />

* – c a b<br />

O. Bittel; Sept. 2008 Programmiertechnik 2 - <strong>Bäume</strong> 7-18

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!