C-Programmierung

Endrekursion

Iterationsbeispiel | | Rekursionsumkehrung

Wenn möglich: Umwandeln einer rekursiven Funktion in eine iterative Variante.

Im einfachsten Fall liegt eine sogenannte End-Rekursion vor, die sich direkt in eine iterative Schleife umwandeln läßt:

void func(int x)
{
   if (x>0) {
      ...
      func(x-1); /* end-recursion */
   }
}

entspricht der Schleife:

for (int i=x; x>0; x--) {
   ...
}

Weitere ähnliche Umwandlungen existieren mit Hilfe der Stapelmaschine.

Iterationsbeispiel | | Rekursionsumkehrung

Options: