美文网首页
day15 stack queue,遍历目录

day15 stack queue,遍历目录

作者: y_j杨健 | 来源:发表于2019-01-12 00:21 被阅读0次

    模拟栈结构
    stack = [ ]
    压栈(向栈里存数据)

    stack.append('a')
    print(stack)
    stack.apped('b')
    print(stack)
    stack.append('c')
    print(stack)
    
    打印结果:
    ['a']
    ['a', 'b']
    ['a', 'b', 'c']
    

    出栈(向栈里取数据)

    res1 = stack.pop()
    print('res1=',res1)
    print(stack)
    res2 = stack.pop()
    print('res2=',res2)
    print(stack)
    res3 = stack.pop()
    print('res3=',res3)
    print(stack)
    
    打印结果:
    res1= c
    ['a', 'b']
    res2= b
    ['a']
    res3= a
    []
    

    队列--先进先出
    创建一个队列

    import collections
    queue = collections.deque()
    print(queue)
    

    进队(存数据)

    queue.append('a')
    print(queue)
    queue.append('b')
    print(queue)
    queue.append('c')
    print(queue)
    
    打印结果:
    deque(['a'])
    deque(['a', 'b'])
    deque(['a', 'b', 'c'])
    

    出队(取出数据)

    ser1 = queue.popleft()
    print('ser1=',ser1)
    print(queue)
    ser2 = queue.popleft()
    print('ser2=',ser2)
    print(queue)
    ser3 = queue.popleft()
    print('ser3=',ser3)
    print(queue)
    
    打印结果:
    ser1= a
    deque(['b', 'c'])
    ser2= b
    deque(['c'])
    ser3= c
    deque([])
    

    递归遍历目录:

    import os
    def getAllDir(path):
        获取当前路径下所有文件
        files_list = os.listdir(path)
        处理文件是否目录
        for file_name in files_list:
              判断路径(绝对路径)
              file_abspath = os.path.join(path,file_name)
              if os.path.isdir(file_abspath):
                  print('目录:' + file_name)
                  getAllDir(file_abspath)
              else:
                  print('普通目录:'+ file_name) 
    getAllDir(r'D:\Python学习进度')
    思路:调用函数,遍历路径下所有目录文件   都打印出来
    

    栈模拟递归遍历目录(深度遍历)

    def getAllDirDE(path):
        stack = [ ]     #  空栈
        stack.append(path)   #  压栈  (存数据)
      #   处理栈,当栈为空的时候结束循环
        while len(stack) != 0:
              dirpath = stack.pop()  #  出栈  (取出数据)
             # 获取当前目录下所有目录文件
              file_list = os.listdir(dirpath)
              for file_name in files_list:
                  判断路径(合拼路径)
                  file_abspath = os.path.join(path.file_name)
                   if os.path.isdir(file_abspath):
                          print('目录:'+file_name)
                          stack.append(file_abspath)
                   else:
                          print('普通文件:'+file_name)
    getAllDirDE(r'D:\Python学习进度')
    

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

    import os
    import collections
    def getAllDirQUE(path):
          #   创建一个队列
           queue = collections.deque() 
            queue.append(path)   #  进队(存数据)
            处理队列,当队列为空的是否就结束循环
            while len(queue) != 0:
                    dirpath = queue.popleft()   #  出队(取数据)
                    #  获取路径下的所有目录  
                     files_list = os.listdir(dirpath)
                      for file_name in file_list:
                        # 判断路径(绝对路劲,合拼路径)
                          file_abspath = os.path.join(path,file_name)
                          if os.path.isdir(file_abspath):
                                print('目录:'+file_name)
                                queue.append(file_abspath)
                          else:  
                                 print('普通目录:'+file_name)
            
    getAllDirQUE(r'D:\Python学习进度')
    

    相关文章

      网友评论

          本文标题:day15 stack queue,遍历目录

          本文链接:https://www.haomeiwen.com/subject/owntdqtx.html