Umschreiben einer rekursiven Funktion, ohne Verwendung von Rekursion

Bin ich umschreiben einige der bestehenden code in eine Einstellung, wo rekursive Aufrufe sind nicht so leicht umgesetzt noch angestrebt. (Und in Fortran 77, wenn Sie müssen wissen.) Ich habe gedacht, darum, einen Stapel von Grund auf zu verfolgen, Anrufe, notwendig, aber dieses scheint notdürftigem, und ich möchte lieber nicht reserviert Speicher für ein array in Fällen, in denen die Rekursion ist nicht tief. (Ich bin nicht überzeugt, dass Fortran 77 unterstützt das dynamische array-Dimensionierung entweder.)

Andere Vorschläge für eine Allgemeine Lösung auf, wie Sie ein offensichtlich rekursive Funktion und schreiben Sie es nicht-rekursiv ohne Platzverschwendung auf ein stack?

Vielen Dank,
Alte McSt

  • Wenn es nicht verzweigen, können Sie in der Regel schreiben Sie in einer einfachen Schleife. Wenn es Zweige, die Sie benötigen in der Regel einen Stapel
  • eine rekursive Funktion, die nicht verzweigen, wird, per definition, nie wieder...
  • Denke, dass ich missbraucht das Wort Zweig. Ich meine, selbst mehrere Male aufgerufen, so dass der graph der Aufrufe wird zu einem Baum mit ästen. Und es ist nur meine Erfahrung und nicht immer wahr.
Schreibe einen Kommentar