我正在尝试制作一个迭代器,该迭代器对特定文件夹中的所有文件和文件夹执行广度优先遍历。我已经用深度优先遍历完成了这个,它返回,例如:
\A
\A\1
\A\1\x
\A\1\y
\A\2
\B
\B\1
等等
现在我正在尝试制作一个程序,该程序将返回广度优先的结果:(或逐级)
\A
\B
\A\1
\A\2
\B\1
\A\1\x
\A\1\y
对于相同的层次结构。但是,我遇到了一个绊脚石:假设我希望这些以正确的顺序发生(特别是,不是相反的顺序),我找不到任何方法来执行此操作而最终需要 O(n) 内存,其中n是驱动器上文件/文件夹的数量,因为在我看来,我最终需要将整个驱动器层次结构保留在内存中,而对于 DFS,我可以完全忽略我之前在层次结构中的同一级别。
所以我的问题是:有没有比线性更好的方式来使用内存来遍历文件夹?