队列模拟递归遍历目录(广度遍历)

Posted fshou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列模拟递归遍历目录(广度遍历)相关的知识,希望对你有一定的参考价值。

import os
import collections
def getALLDir(path):
    queue = collections.deque()#空的
    queue.append(path)#进队

    while len(queue) != 0:
        dirPath = queue.popleft()#数据出队
        filesList = os.listdir(dirPath)#找出所有文件

        for fileName in filesList:#处理文件
            fileAbsPath = os.path.join(dirPath,fileName)#合成文件绝对路径
            if os.path.isdir(fileAbsPath):#判断文件类型
                print("目录:" + fileName)
                queue.append(fileAbsPath)#若文件为目录 则进队 进行!=0的判断 即继续遍历
            else:
                print("普通文件:" + fileName)
getALLDir(r"C:Users23678Desktop超星智慧树网课助手浏览器版V1.1.0")

 

思路简图

画的有点丑,不要嫌弃 (~ ̄▽ ̄)~

 

 

技术图片

 

以上是关于队列模拟递归遍历目录(广度遍历)的主要内容,如果未能解决你的问题,请参考以下文章

python中用队列模拟递归(广度遍历)

广度优先遍历和深度优先遍历的真正区别

binarytree二叉树节点BFS广度优先搜索遍历,基于队列,非递归,python

深度遍历与广度遍历

二叉树非递归后缀遍历

二叉树遍历(先序,中序,后序,层序)递归和非递归形式