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