什么是栈?
栈是一种“先进后出”的一种数据结构,有压栈出栈两种操作方式。如下图?:
栈的压栈和出栈什么是深度遍历呢?
假设初始状态是图中所有顶点未曾被访问,则深度优先搜索可从图中某个顶点发v 出发,访问此顶点,然后依次从v 的未被访问的邻接点出发深度优先遍历图,直至图中所有和v 有路径相通的顶点都被访问到;若此时图中尚有顶点未被访问,则另选图中一个未曾被访问的顶点作起始点,重复上述过程,直至图中所有顶点都被访问到为止。
了解了上面的一些基本点就让我们来看来一些代码吧:
import os
def getAllDirDe(path):
stack = []
stack.append(path)
# 处理栈,当栈为空的时候结束循环
while len(stack) !=0:
# 从栈里取数据
dirPath = stack.pop()
# 目录下所有文件
filesList = os.listdir(dirPath)
# 处理每一个文件,如果是普通文件则打印出来,如果是普通文件则将该目录的地址亚栈
for fileNamein filesList:
fileAbsPath = os.path.join(dirPath,fileName)
if os.path.isdir(fileAbsPath):
# 是目录就压栈
stack.append(fileAbsPath)
print("目录:"+ fileName)
else:
# 打印普通文件
print("普通:" + fileName)
getAllDirDe(r"E:\python\PycharmProjects\python基础学习\day05")
执行结果如下:
dfs
网友评论