棧是一種數(shù)據(jù)結(jié)構(gòu),它具有后進(jìn)先出(Last-In-First-Out,LIFO)的特點(diǎn)。在Python中,可以使用列表構(gòu)造棧,也可以使用內(nèi)置模塊queue
中的LifoQueue
類。
列表實(shí)現(xiàn)棧的方法:
stack = [] # 聲明一個(gè)列表作為棧
# 入棧
stack.append(item)
# 出棧
stack.pop()
LifoQueue
實(shí)現(xiàn)棧的方法:
from queue import LifoQueue
stack = LifoQueue() # 聲明一個(gè)LifoQueue作為棧
# 入棧
stack.put(item)
# 出棧
stack.get()
以上代碼中,item
是待入棧的元素。
使用棧的場景包括:
- 逆序輸出
- 表達(dá)式求值
- 括號匹配
- 深度優(yōu)先搜索
- ...
棧的實(shí)現(xiàn)方式有很多,選擇合適的實(shí)現(xiàn)方式取決于具體的應(yīng)用場景。