Lernpfad:Rekursion in Java/Aufrufstapel

Aus Informatik-Box
< Lernpfad:Rekursion in Java
Version vom 13. November 2021, 16:51 Uhr von Jneug (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

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);
	}
}
Aufrufstapel der Methode fakultaet.
Icon Heft.png
Arbeitsauftrag
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;
    }
}
z(1)
z(3)
z(5) z(5) 5+4=9
Lösung
z(1) 1
z(3) z(3) 3+1=4
z(5) z(5) z(5) z(5) 5+4=9