Lernpfad:Rekursion in Java/Aufrufstapel: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Arbeitsauftrag
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Jneug (Diskussion | Beiträge) |
||
Zeile 35: | Zeile 35: | ||
| | | | ||
|z(1) | |z(1) | ||
| | | | ||
| | | | ||
|- | |- | ||
Zeile 45: | Zeile 45: | ||
|- | |- | ||
| z(5) | | z(5) | ||
| | | | ||
| | | | ||
| | | | ||
| 5+4=9 | | 5+4=9 | ||
|- | |- |
Version vom 28. Januar 2020, 22:39 Uhr
Der Aufrufstapel
Intern werden die Methodenaufrufe einer rekursiven Methode auf einem Stapel (Stack) gespeichert. Die Methoden, die ganz oben auf dem Stapel liegen, werden zuerst abgearbeitet. Danach wird das Resultat der Methode verwendet, um die darunterliegenden Methoden zu berechnen.
Der Quelltext für die Methode fakultaet
erzeugt den darunter dargestellten Aufrufstapel.
public int fakultaet(int n) {
if(n < 2) {
return 1;
} else {
return n*fakultaet(n-1);
}
}
![Icon Heft.png](/hgwiki/images/thumb/3/36/Icon_Heft.png/64px-Icon_Heft.png)
Die Methode z | Ergänze den Aufrufstapel für z(5) . | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
public int z(x) {
if(x > 1) {
return x + z(x - 2);
} else {
return 1;
}
}
|
|
Lösung
z(1) | 1 | |||
z(3) | z(3) | 3+1=4 | ||
z(5) | z(5) | z(5) | z(5) | 5+4=9 |