396
Bearbeitungen
Jneug (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Ngb (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
(6 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Navigation}} | {{Navigation}} | ||
== Der Aufrufbaum == | == Der Aufrufbaum == | ||
[[Datei:PascalTriangleAnimated2.gif|frame|right|Visualisierung der Berechnung des Pascalschen Dreiecks.]]Durch einen Aufrufbaum wird die schrittweise Lösung eines Problems dargestellt. Im Aufrufbaum werden die ''Parameter'' und die ''Rückgaben'' der Methode visualisiert. Gerade bei Methoden mit mehreren rekursiven Aufrufen verdeutlicht der Aufrufbaum die Ausführung. | [[Datei:PascalTriangleAnimated2.gif|frame|right|Visualisierung der Berechnung des Pascalschen Dreiecks.]] Durch einen Aufrufbaum wird die schrittweise Lösung eines Problems dargestellt. Im Aufrufbaum werden die ''Parameter'' und die ''Rückgaben'' der Methode visualisiert. Gerade bei Methoden mit ''mehreren rekursiven Aufrufen'' verdeutlicht der Aufrufbaum die Ausführung. | ||
Das [[wikipedia:Pascalsches Dreieck|Pascalsche Dreieck]] kann rekursiv berechnet werden, die jeweils oberhalb liegenden Felder werden addiert und ergeben das darunter liegende Feld (vgl. | Das [[wikipedia:Pascalsches Dreieck|Pascalsche Dreieck]] kann rekursiv berechnet werden, die jeweils oberhalb liegenden Felder werden addiert und ergeben das darunter liegende Feld (vgl. Animation rechts). | ||
Der untere Aufrufbaum verdeutlicht die Berechnungen, die für die vierte Zeile und die dritte Spalte des Pascalschen Dreiecks benötigt werden: | Der untere Aufrufbaum verdeutlicht die Berechnungen, die für die vierte Zeile und die dritte Spalte des Pascalschen Dreiecks benötigt werden: | ||
Zeile 15: | Zeile 15: | ||
* <math>f(n) = n</math> für <math>n<2</math> | * <math>f(n) = n</math> für <math>n<2</math> | ||
<syntaxhighlight lang="java" line="1" > | <syntaxhighlight lang="java" line="1" > | ||
public int f(n) { | public int f(n) { | ||
if(n > 1) { | |||
return f(n-2) + f(n-1); | |||
} else { | |||
return n; | |||
} | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Notiere den Aufrufbaum des Methodenaufrufs <math>f(4)</math>. | |||
{{Aufgabe:End}} | {{Aufgabe:End}} | ||
{{Lösung:Start}} | {{Lösung:Start}} | ||
[[Datei:03_Rekursion_Aufrufbaum_fib_loesung.PNG|Aufrufbaum bei der rekursiven Berechnung von f(4).]] | [[Datei:03_Rekursion_Aufrufbaum_fib_loesung.PNG|Aufrufbaum bei der rekursiven Berechnung von f(4).]] | ||
{{Lösung:End}} | {{Lösung:End}} |