遞迴遍歷02 棧模擬遍歷目錄(深度遍歷)

2021-10-02 18:30:55 字數 564 閱讀 8701

import os

def getalldir(path):

stack =

# 當棧為空的時候處理棧

while len(stack) != 0:

# 從棧裡取資料

dirpath = stack.pop()

filelist = os.listdir(dirpath)

# 處理檔案

for filename in filelist:

fileabspath = os.path.join(dirpath, filename)

print(fileabspath)

if os.path.isdir(fileabspath):

print('目錄', filename, '入棧')

else:

print('檔案', filename)

path = r'd:\pypypy\high_learn'

getalldir(path)

如果是目錄就壓入棧中,檔案直接列印

在棧中的檔案,先進的後處理,後進的先處理

Python 棧和佇列及其模擬遞迴遍歷目錄

本文主要概括了棧和佇列的定義及其相應的方法,總結了如何向棧和佇列中存資料和取資料。最後利用棧是一種先進後出的資料結構,而佇列是一種先進先出的資料結構的特徵,用棧和佇列來模擬遞迴遍歷目錄。模擬棧結構 先進後出 stack 佇列結構 先進先出 import collections queue colle...

遞迴遍歷目錄

遞迴 乙個函式內部在其內部不呼叫其他函式,而是呼叫自身,類似迴圈 注,自己玩自己,防止死遞迴 使用遞迴來遍歷出乙個目錄中的所有檔案 import os def getalldirre path,sp 引數 路徑 返回值 none 完成功能,獲取呼叫者傳遞的路徑下的所有檔案 檔案 直接顯示,資料夾 二...

Qt 遞迴方式遍歷目錄

基本思想 1.指定乙個目錄 2.找到當前目錄下的檔案 不包括資料夾,qdir可以進行篩選 存入qfileinfolist,然後按順序存入qtreewidgetitem,並新增至根節點 3.找到當前目錄下的第乙個資料夾,作為乙個新的根節點 4.重複2,3過程,直到沒有新的資料夾 至此遞迴過程完畢。qf...