Veröffentlicht 19. November 200123 j 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
19. November 200123 j Verpass der rekursiven Funktionen einen weiteren Parameter: void Recurse( int nDepth ) { ... Recurse( nDepth + 1 ); } [/code]
19. November 200123 j 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>
19. November 200123 j 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); }
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.