队列 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