1. 程式人生 > >python第三十二課——棧

python第三十二課——棧

取數 自定義函數 -- 元素 壓棧 tac 定義 color 引用


棧:滿足特點 --> 先進後出,類似於我們生活中的子彈夾

【註意】

對於棧結構而言:python中沒有為其封裝特定的函數,我們可以使用list(列表)來模擬棧的特點

使用list對象來模擬棧結構存取數據的特點:先進後出
# 定義一個列表對象,stack(變量名、引用名)
stack=[]

# 向棧中添加數據(模擬壓棧)
stack.append(A)
print(stack)

stack.append(B)
print(stack)

stack.append(C)
print(stack)


# 將棧中的數據彈出(模擬彈出)
obj=stack.pop()
print(彈出:+obj) obj=stack.pop() print(彈出:+obj) obj=stack.pop() print(彈出:+obj)

模擬棧結構特點實現目錄遍歷之深度遍歷
import os
#自定義函數:實現深度遍歷目錄層級的操作
def getAllFileST(path):
    #定義一個列表
    lt=[]
    #將path(字符串、絕對路徑)壓棧
    lt.append(path)
    #根據lt的長度來決定循環執行的次數
    while len(lt)!=0:
        #將lt中的數據彈棧
file_path=lt.pop() #得到file_path中的字內容(文件、子目錄)以列表的形式返回 file_list=os.listdir(file_path) #循環處理file_list for file in file_list: #將其中的每個元素還原成為絕對路徑值 fileAbsPath=os.path.join(file_path,file) ‘‘‘ 判斷是文件還是目錄? 如果是文件,直接打印其文件名即可 如果是目錄,先打印其目錄然後在將其壓棧
‘‘‘ if os.path.isfile(fileAbsPath): print(文件:+file) else: print(目錄:+file) lt.append(fileAbsPath) p=ra.txt getAllFileST(p)

python第三十二課——棧