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 */
}
}
{
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 →