bozoo Geschrieben 19. November 2001 Geschrieben 19. November 2001 Hi, mit einem Programm öffne ich Dateien rekursiv. Hat jemand einen genialen Einfall, wie ich mir die Rekursionstiefe am Besten merken kann? Ich brauch den Wert, um bei der Ausgabe einrücken zu können usw. volkaman Zitieren
Klotzkopp Geschrieben 19. November 2001 Geschrieben 19. November 2001 Verpass der rekursiven Funktionen einen weiteren Parameter: void Recurse( int nDepth ) { ... Recurse( nDepth + 1 ); } [/code] Zitieren
Crush Geschrieben 19. November 2001 Geschrieben 19. November 2001 Achtung, beim Traversieren in die Dateistrukturen (verschachtelte Directories) verändert sich ja stetig die Rekursionstiefe, als auch beim Rausgehen wieder die Verschachtelungs-Tiefe. Du mußt den Zähler u.U. anpassen oder bei Erreichen der höchsten Stufe die Tiefe wieder auf 0 setzen und die vorhergegangene Tiefe absichern, damit keine falschen Werte bei rauskommen, sonst wäre das kein Rekursionszähler sondern ein normaler Counter. Kommt drauf an, ob eine übergeordnete Programmstruktur die Tiefe auch kennen muß, dann müßte man halt nicht eine neue Variable immer auf dem Stack anlegen sondern halt eine Referenz immer weiterreichen. <FONT COLOR="#a62a2a" SIZE="1">[ 19. November 2001 18:09: Beitrag 1 mal editiert, zuletzt von Crush ]</font> Zitieren
toosten Geschrieben 19. November 2001 Geschrieben 19. November 2001 Oder mit einer static-variablen ;-). #include <iostream.h> void re(int zahl) { static int zahler=0; zahler++; if(zahl>0) re(zahl-1); cout<<"Zahl: "<<zahl<<" Tiefe: "<<zahler<<endl; zahler--; } void main() { re(10); } Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.