알고리즘을 찾고 있었으므로 OS가 재귀를 사용하지 않고 폴더를 반복하는 방법에 문제가 없습니다.반복없이 폴더를 반복합니다.
재귀는 "무한대"이상으로 이동할 수 없으며 "while 루프"가 거기에 도달 할 수 있기 때문에 재귀가 대답이 아닙니다.
프로그래밍 언어는 중요하지 않습니다.
알고리즘을 찾고 있었으므로 OS가 재귀를 사용하지 않고 폴더를 반복하는 방법에 문제가 없습니다.반복없이 폴더를 반복합니다.
재귀는 "무한대"이상으로 이동할 수 없으며 "while 루프"가 거기에 도달 할 수 있기 때문에 재귀가 대답이 아닙니다.
프로그래밍 언어는 중요하지 않습니다.
depth-first 트래 버럴에 대해 stack 데이터 구조를 사용할 수 있습니다. C#의 샘플 코드는 다음과 같습니다.
var stack = new Stack<string>();
stack.Push(@"C:\");
while (stack.Count > 0)
{
var currentDirectory = stack.Pop();
Console.WriteLine("Visiting: " + currentDirectory);
foreach (var childDirectory in Directory.GetDirectories(currentDirectory))
{
stack.Push(childDirectory);
}
}
감사합니다. 완벽하게 작동합니다. :) – Vizualni
물론, 처음에는 재귀를 사용했다면, 이것은 컴파일러가 당신을 위해 무엇을했는지 수동으로 복사하는 것입니다. –
OS는 무엇입니까? –
해결하려는 문제는 무엇입니까? 재귀가 왜 대답이 아닌가? –
알고리즘을 찾고 있었기 때문에 OS는 문제가되지 않습니다. 재귀는 "무한대"로 갈 수 없기 때문에 재귀는 대답이 아니지만 "while 루프"는 갈 수 있습니다. – Vizualni