Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ return sum(n); } } 13 12 11 10 9 8 7 6 5 4 3 2 1 Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 12 11 10 9 8 7 6 5 3 4 3 2 1 Aufruf gibSumme(3) Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 n=3 12 11 10 s=sum(2) 9 8 RET #0 7 6 5 4 sum(3) 3 2 1 3 Aufruf gibSumme(3) Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 n=2 12 11 10 s=sum(1) 9 8 RET #3 7 6 5 4 sum(3) 3 RET #0 2 1 3 3 Aufruf gibSumme(3) Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 n=1 12 11 10 s=sum(0) 9 8 RET #6 7 6 RET #3 5 4 2 sum(3) 3 RET #0 2 1 3 3 Aufruf gibSumme(3) Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 n=0 12 11 10 9 RET #6 8 RET #9 7 1 6 RET #3 5 4 2 sum(3) 3 RET #0 2 1 3 3 Aufruf gibSumme(3) Stackpointer 1
Rekursion – Speicherverwaltung Lokale Variable werden auf dem Stack abgelegt. public class Demo { // rekursive Funktion private int sum(int n){ if (n==0) return 0; else int s = sum(n-1); return (n + s); } // Starterfunktion public int gibSumme(int n){ n=sum(n); return n; } } 14 13 12 RET #9 11 10 9 RET #6 1+0 8 7 1 6 RET #3 1+2 5 4 2 sum(3) 3 RET #0 3+3 2 1 3 3 6 Aufruf gibSumme(3) Stackpointer 1