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.
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