資料結構與演算法 3.棧 Stack
阿新 • • 發佈:2021-10-29
棧 Stack
棧是一種特殊的線性表,只能在一端進行操作 往棧中新增元素的操作,叫做入棧,push 往棧中移除元素的操作,叫做出棧,pop,只能移除棧頂元素,也叫彈出棧頂元素 FILO的結構 First In Last Out 棧的介面設計: isEmpty() 判斷棧是否為空 size() 返回棧中元素數量 push() 入棧 pop() 出棧 peek() 獲取棧頂元素 棧的應用: 瀏覽器的前進和後退:使用兩個棧,一個用來存放當前訪問及其之前的網址,一個用來存放當前訪問之後的網址 軟體的撤銷(Undo)和恢復(Redo)
class Stack(object): def __init__(self): self.items = [] # 判斷棧是否為空 def isEmpty(self): return self.items == [] # 獲取棧的長度 def size(self): return len(self.items) # 入棧 def push(self,item): self.items.append(item) # 出棧 def pop(self): return self.items.pop() # 獲取棧頂元素 def peek(self): return self.items[self.size() - 1] if __name__ == '__main__' : stack = Stack() stack.push(11) stack.push(22) stack.push(33) stack.push(44) res = stack.peek() print(res) while stack.isEmpty() == False : res = stack.pop() print(res) 44 44 33 22 11