Teil 7: Bäume Beispiele (1)
Teil 7: Bäume Beispiele (1)
Teil 7: Bäume Beispiele (1)
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