Viz*_*lni 3 language-agnostic recursion
我正在寻找一种算法,所以操作系统没有问题,如何在不使用递归的情况下循环遍历文件夹.
递归不是答案,因为递归不能进入"无限"和更远,而"while循环"可以到达那里.
编程语言并不重要.
您可以使用堆栈数据结构进行深度优先遍历.以下是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);
}
}
Run Code Online (Sandbox Code Playgroud)