隊列 Queue
隊列是一種特殊的線性表,隻能在頭、尾兩端進行操作
隊尾(rear):隻能從隊尾添加元素,叫做入隊,enQueue
隊頭(front):隻能從隊頭移除元素,叫做出隊,deQueue
FIFO的結構 First In First Out
隊列的接口設計:
isEmpty() 判斷隊列是否為空
size() 傳回隊列中元素數量
enQueue() 入隊
deQueue() 出隊
front() 擷取隊頭元素
隊列的應用:
需要處理大量消息時削峰
生産者消費者模型
用于程序之間通信
class Queue(object):
def __init__(self):
self.items = []
# 判斷隊列是否為空
def isEmpty(self):
return self.items == []
# 擷取隊列長度
def size(self):
return len(self.items)
# 入隊
def enQueue(self,item):
self.items.append(item)
# 出隊
def deQueue(self):
return self.items.pop(0)
# 擷取隊頭元素
def front(self):
return self.items[0]
if __name__ == '__main__' :
queue = Queue()
queue.enQueue(11)
queue.enQueue(22)
queue.enQueue(33)
queue.enQueue(44)
res = queue.front()
print(res)
while queue.isEmpty() == False :
res = queue.deQueue()
print(res)
11
11
22
33
44