C-Programmierung
Rekursionsumkehrung
← Endrekursion | ● | Rekursion in der Praxis →
Ein klassischer Einsatzbereich der Rekursion ist die Umkehrung einer Sequenz (am Beispiel einer einfachen Zahlenreihe):
void forward(int n)
{
if (n>0) {
forward(n-1);
printf("%d ", n);
}
}
forward(n);
output: 1 2 3 ... n
{
if (n>0) {
forward(n-1);
printf("%d ", n);
}
}
forward(n);
output: 1 2 3 ... n
void backward(int n)
{
if (n>0) {
printf("%d\n", n);
backward(n-1);
}
}
backward(n);
output: n n-1 n-2 ... 1
{
if (n>0) {
printf("%d\n", n);
backward(n-1);
}
}
backward(n);
output: n n-1 n-2 ... 1
Beispiel zur Ausgabe einer Zahl in Dualschreibweise:
void print_dual(unsigned int n)
{
if (n>1) print_dual(n>>1);
printf("%d", n&1);
}
{
if (n>1) print_dual(n>>1);
printf("%d", n&1);
}
← Endrekursion | ● | Rekursion in der Praxis →