棧(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
本文鏈接:時光不寫博客