Java Reference
In-Depth Information
while (vornFrei()) {
vor();
schritte++;
}
// kehrt
linksUm();
linksUm();
// laufe zurueck
while (schritte > 0) {
vor();
schritte--;
}
}
void main() {
hinUndZurueck();
}
Die Prozedur hinUndZurueck realisiert also eine iterative Lösung des gegebenen Problems. Eine
äquivalente rekursive Lösung bietet folgende rekursiv definierte Prozedur hinUndZurueckR :
void hinUndZurueckR() {
if (vornFrei()) {
vor();
hinUndZurueckR();
vor();
} else {
linksUm();
linksUm();
}
}
void main() {
hinUndZurueckR();
}
Was unterscheidet die beiden Prozeduren hinUndZurueck und hinUndZurueckR ? Zunächst ein-
mal fällt auf, dass in der Prozedur hinUndZurueckR weder eine while-Schleife noch eine Variable
eingesetzt wird. Das Wesentliche ist jedoch, dass in der Prozedur hinUndZurueckR eine Prozedur
aufgerufen wird, nämlich hinUndZurueckR selbst. Genau dieses Phänomen, dass während der Aus-
führung einer Funktion die gleiche Funktion ein weiteres Mal aufgerufen wird, wird als Rekursion
bezeichnet.
17.2 Definitionen
Bevor wir den Begriff der „Rekursion“ exakt definieren können, muss zuvor ein weiterer Begriff
eingeführt werden, nämlich der Begriff der „Inkarnation“.
Search WWH ::




Custom Search