棧(stacks)是一種資料結構,是一種隻能在一端進行插入和删除操作的特殊線性表, 它按照先進後出的原則存儲資料(Last In First Out - LIFO)。
- 代碼(使用list):
本文連結: 時光不寫部落格class Stack(object): # 初始化 def __init__(self): self.items = [] # 判斷是否為空 def is_empty(self): return self.items == [] # 傳回棧頂元素 def peek(self): if self.is_empty(): raise KeyError("stack is None") return self.items[len(self.items) - 1] #傳回棧的大小 def size(self): return len(self.items) # 入棧,把新的元素放進棧裡 def push(self, item): self.items.append(item) # 出棧,把棧頂元素丢出去 def pop(self): if self.is_empty(): raise KeyError("stack is None") return self.items.pop() if __name__ == '__main__' : a_stack = Stack() # 插入元素 a_stack.push('一') a_stack.push('二') a_stack.push('三') print(a_stack.size()) # 3 print(a_stack.peek()) # 三 print(a_stack.pop()) # 三 print(a_stack.peek()) # 二 print(a_stack.size()) # 2 print(a_stack.is_empty()) # False a_stack.__init__() print(a_stack.is_empty()) # True