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