遞迴 棧和佇列遍歷

2021-08-28 14:24:17 字數 1409 閱讀 6706

import os

def getalldir(path, sp = ""):

fileslist = os.listdir(path) # 得到當前目錄下所有的檔案

sp += " "

for filename in fileslist: # 處理每乙個檔案

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

if os.path.isdir(fileabspath): # 判斷是否是路徑

print(sp, "目錄:", filename)

getalldir(fileabspath, sp)

else:

print(sp, "檔案:", filename)

getalldir(r"c:\users\xlg\desktop\python-1704\day09\temp\dir")

import os

def getalldirde(path):

stack =

while len(stack) != 0: #處理棧,當棧為空迴圈結束

dirpath = stack.pop()

fileslist = os.listdir(dirpath)

for filename in fileslist: #處理每乙個檔案:普通檔案列印,目錄繼續壓棧

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

if os.path.isdir(fileabspath):

print("目錄:", filename)

else:

print("普通檔案:", filename)

getalldirde(r"d:\文件(documents)")

import os

import collections

def getalldirqu(path):

queue = collections.deque()

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)

else:

print("普通檔案:", filename)

getalldirqu(r"d:\文件(documents)")

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

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

python中的遞迴,棧與佇列和目錄遍歷

遞迴呼叫 乙個函式,呼叫了自身,稱為遞迴呼叫 遞迴函式 乙個會呼叫自身的函式稱為遞迴函式 凡是迴圈能幹的事,均可以用遞迴寫出來 方式 寫出臨界條件 找這一次和上一次的關係 假設當前函式已經能用,呼叫自身計算上一次的結果,再求出本次結果 思路 臨界條件 1 找上一次和本次的關係 相加的關係 sum 4...

棧 佇列 遞迴

用陣列實現乙個順序棧class stack def init self self.items defisempty self return self.items defpush self,item def pop self return self.items.pop def peek self re...