棧是一種重要的數據結構,它是一種后進先出 (LIFO) 的數據結構。Python 的內置數據結構 list 可以很方便地實現棧。
# 創建一個空棧
stack = []
# 入棧
stack.append('apple')
stack.append('banana')
stack.append('cherry')
# 出棧
item = stack.pop()
print(item) # 輸出 cherry
以上代碼通過使用 list 的append()
方法實現了入棧,使用pop()
方法實現了出棧,并輸出了彈出的元素。
如果需要檢查棧是否為空,可以使用 Python 的內置函數len()
:
if len(stack) == 0:
print('Stack is empty')
else:
print('Stack is not empty')
此外,Python 還有一個內置模塊collections
,其中包含一個類deque
,它實現了雙向隊列。因為deque
是由雙向鏈表實現的,因此在使用它作為棧時,操作append()
和pop()
和使用 list 作為棧時一樣快。
from collections import deque
# 創建一個空棧
stack = deque()
# 入棧
stack.append('apple')
stack.append('banana')
stack.append('cherry')
# 出棧
item = stack.pop()
print(item) # 輸出 cherry
以上是使用 deque 實現棧的代碼。