棧 佇列 和 雙向佇列
阿新 • • 發佈:2018-12-27
# 棧 # 特點: 先進後出 # class StackFullException(Exception): # pass # # class StackEmptyException(Exception): # pass # # class Stack: # # def __init__(self, size): # self.size = size # self.lst = [] # 存放資料的列表 # self.top = 0 # 棧頂指標 # # # 入棧 # def push(self, el): # if self.top >= self.size: # raise StackFullException("your stack is full!!!!!") # self.lst.insert(self.top, el) # 放元素 # self.top += 1 # 棧頂指標向上移動一下 # # # 出棧 # def pop(self): # if self.top == 0: # raise StackEmptyException("your stack is empty!!!!!") # self.top-=1 # el = self.lst[self.top] # return el # # s = Stack(6) # s.push("寶寶") # s.push("我還") # s.push("記得") # s.push("你") # s.push("剛剛") # s.push("說的話") # print(s.pop()) # print(s.pop()) # print(s.pop()) # print(s.pop()) # print(s.pop()) # print(s.pop()) # import queue # q = queue.Queue() # q.put("李嘉誠1") # q.put("李嘉誠2") # q.put("李嘉誠3") # q.put("李嘉誠4") # q.put("李嘉誠5") # # print(q.get()) # print(q.get()) # print(q.get()) # print(q.get()) # print(q.get()) # from collections import deque # # d = deque() # 建立雙向佇列 # d.append("寶寶") # 在右側新增 # d.append("no") # d.append("way") # d.append("哈哈") # d.appendleft("娃哈哈") # 在左邊新增 # d.appendleft("爽歪歪") # d.appendleft("優酸乳") # # # print(d.pop()) # 從右邊拿資料 # print(d.pop()) # 從右邊拿資料 # print(d.pop()) # 從右邊拿資料 # print(d.pop()) # 從右邊拿資料 # print(d.popleft()) # 從左邊拿資料 # print(d.popleft()) # 從左邊拿資料 # print(d.popleft()) # 從左邊拿資料 # #