06.10.2013 Aufrufe

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />

Das Suchen kann rekursiv, oder auch sequentiell erfolgen:<br />

Rekursiv:<br />

Sequentiell:<br />

TreeNode *F<strong>in</strong>dNode(<strong>in</strong>t Wert, TreeNode *Node)<br />

{<br />

/* Falls ke<strong>in</strong> Element, nicht gef<strong>und</strong>en */<br />

if (Node== NULL) {<br />

return NULL;<br />

} else {<br />

/* Prüfen ob gef<strong>und</strong>en, sonst <strong>in</strong> Teilbaeumen weitersuchen */<br />

if (Node->Value == Wert) {<br />

return Node;<br />

} else {<br />

/* Prüfen ob im rechten oder im l<strong>in</strong>ken Teilbaum weitersuchen*/<br />

if (Wert > Node->Value) {<br />

/* Wert ist grösser, im rechten Teilbaum weitersuchen*/<br />

return F<strong>in</strong>dNode(Wert, Node->Right);<br />

} else {<br />

/* Wert ist kle<strong>in</strong>er, im l<strong>in</strong>ken Teilbaum weitersuchen*/<br />

return F<strong>in</strong>dNode(Wert, Node->Left);<br />

}<br />

}<br />

}<br />

TreeNode *F<strong>in</strong>dNode(<strong>in</strong>t Wert, TreeNode *Root)<br />

{<br />

TreeNode *p;<br />

}<br />

/* Falls ke<strong>in</strong> Element, nicht gef<strong>und</strong>en */<br />

if (Node== NULL) {<br />

return NULL;<br />

} else {<br />

/* Prüfen ob gef<strong>und</strong>en, sonst <strong>in</strong> Teilbaeumen weitersuchen */<br />

for(p = Root; p != NULL; ) {<br />

if (p->Value == Wert) {<br />

return p;<br />

}<br />

/* Prüfen ob im rechten oder im l<strong>in</strong>ken Teilbaum weitersuchen*/<br />

if (Wert > p->Value) {<br />

/* Wert ist grösser, im rechten Teilbaum weitersuchen*/<br />

p = p->Right);<br />

} else {<br />

/* Wert ist kle<strong>in</strong>er, im l<strong>in</strong>ken Teilbaum weitersuchen*/<br />

p = p->Left;<br />

}<br />

}<br />

Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 112/147

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!