bozoo Geschrieben 19. November 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 19. November 2001 Teilen Geschrieben 19. November 2001 Verpass der rekursiven Funktionen einen weiteren Parameter: void Recurse( int nDepth ) { ... Recurse( nDepth + 1 ); } [/code] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Crush Geschrieben 19. November 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
toosten Geschrieben 19. November 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.