Lernpfad:Rekursion in Java/Aufrufbaum: Unterschied zwischen den Versionen

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. Animation rechts).
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).
Zeile 12: Zeile 12:


Mathematisch ausgedrückt:  
Mathematisch ausgedrückt:  
* <math>f(n) = f(n-2)+f(n-1)</math> für <math>n>1</math>
* <math>fib(n) = f(n-2)+f(n-1)</math> für <math>n>1</math>
* <math>f(n) = n</math> für <math>n<2</math>
* <math>fib(n) = n</math> für <math>n<2</math>


Notieren Sie den Aufrufbaum des Methodenaufrufs <math>f(4)</math>.
<syntaxhighlight lang="java" line="1" >
<syntaxhighlight lang="java" line="1" >
public int f(n) {
public int fib(n) {
  if (n > 1){
if(n > 1) {
    return f(n-2) + f(n-1);
return fib(n-2) + fib(n-1);
  }else{
} else {
    return 1;
return 1;
  }
}
}
}
</syntaxhighlight>
</syntaxhighlight>
Notieren Sie 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 fib(4).]]
{{Lösung:End}}
{{Lösung:End}}
8.581

Bearbeitungen