2017-12-07 1 views
0

Ich bin nicht auf der Suche nach jemanden, um meine Aufgabe für mich zu erledigen. Ich bin mir nicht sicher, was es fragt, wenn es um den rekursiven Teil der Aufgabe geht.Zwei for-each Schleifen in einer rekursiven Funktion, um ein Dateisystem zu durchlaufen

Dies ist eine rekursive Funktion das Verzeichnis zu öffnen und die Dateien des Computers öffnen:

For each ChildContainer item in dir 
Create an OrderedList of names 
For each ChildData item of the ChildContainer 
Add the ChildData name to the OrderedList of names 

Warum gibt es zwei for each Aussagen im rekursiven Teil der Anweisungen?

+0

Willkommen bei StackOverflow! Ich habe eine kleine Änderung an Ihrem Post vorgenommen, um den Pseudocode als Code zu formatieren - Sie können das tun, indem Sie jede Zeile um 4 Leerzeichen einrücken. Wenn Sie eine Frage stellen, ist es eine gute Idee, die Vorschau zu überprüfen, bevor Sie sie abschicken, um zu überprüfen, ob die Frage leicht lesbar ist - auf diese Weise erhalten Sie eher Antworten. Ich habe auch die Tags geändert, weil dies nicht spezifisch für Java zu sein scheint, sondern nur eine Frage der Rekursion ist. – DaveyDaveDave

Antwort

0

okies,

Erstens sollte dies sein Stackoverflow nicht, wie es es ist eine Programmier Theorie Frage keine Programmiersprache Frage ist, die auf https://softwareengineering.stackexchange.com/

denken gefragt, sollte ich dir den Punkt der rekursiven Funktionen/Methoden sind vermisst Hier. Der springende Punkt einer rekursiven Funktion ist, dass sie die Verschachtelung für Sie durchführt, so dass Sie keine foreach innerhalb einer anderen verschachteln müssen, damit die Funktion das für Sie erledigt.

Dies ist ein Überblick, wie es zu tun ist, jedoch werde ich keinen Code zur Verfügung stellen, wie Sie gesagt haben, dass dies eine Aufgabe ist. Ich unterstütze kein Plagiat.

PlaceToStore = array of array of dir path (string); 

function scanPath(pathToOpen, PlaceToStore){ 
    where dirHandle equals directory reader 
    where childrenArray = dirHandle->getChilden 
    foreach child in childrenArray do 
     if(child is directory) then 
      scanPath(child->path, PlaceToStore[child->path] 
     else 
      placeToStore[child->path] = child->path 
     end if 
    endforeach 
} 

Sie nicht die doppelte für jede Ihre childData ist ein anderes Verzeichnis in einem

oder die Datei nun dieses Beispiel ist eine kurze Übersicht über eine unordentliche Art und Weise, es zu tun, aber es zeigt, wie Rekursion sollte getan werden müssen, sollten Beispiel, das einfach zu verstehen ist.

Verwandte Themen