Перебирать папки без рекурсии - PullRequest
3 голосов
/ 03 марта 2011

Я искал алгоритм, поэтому ОС не проблема в том, как перебирать папки без использования рекурсии.

Рекурсия не является ответом, потому что рекурсия не может перейти в «бесконечность» и дальше, в то время как «цикл цикла» может туда попасть.

Язык программирования не имеет значения.

1 Ответ

5 голосов
/ 03 марта 2011

Вы можете использовать структуру данных 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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...