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
void backward(int n)
{
   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);
}


Endrekursion | | Rekursion in der Praxis

Options: