21.11.2013 Aufrufe

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

Eine Einführung in die Programmiersprache C und die Grundlagen ...

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.

<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 />

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 />

Sequentiell:<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 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 112/147

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!