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
Klotzkopp Geschrieben 19. November 2001 Geschrieben 19. November 2001 Verpass der rekursiven Funktionen einen weiteren Parameter: void Recurse( int nDepth ) { ... Recurse( nDepth + 1 ); } [/code]
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>
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); }
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden