队列:先进先出(FIFO)
添加操作发生在其尾部,移除操作发生在头部。
1.支持以下操作↓
·Queue() 创建一个空队列。它不需要参数,且会返回一个空队列
·enqueue(item) 在队列的尾部添加一个元素。它需要一个元素作为参数,不返回任何值。
·dequeue() 从队列的头部移除一个元素。它不需要参数,且会返回一个元素,并修改队列的内容。
·isEmpty() 检查队列是否为空。它不需要参数,且会返回一个布尔值。
·size() 返回队列中元素的数目。它不需要参数,且会返回一个整数。
2.实现:
"""队列的尾部在列表的位置0处"""
class Queue:
def __init__(self):
self.items = []
def isEmpty(self):
"""检查队列是否为空"""
return self.items == []
def size(self):
"""检查队列长度"""
return len(self.items)
def enqueue(self,item):
"""从队列尾部添加元素"""
self.items.insert(0,item)
def dequeue():
"""从队列头部移除元素"""
return self.items.pop()
3.应用一:传土豆

import Queue
def hotPotato(namelist,num):
simqueue = Queue()
for name in namelist:
simqueue.enqueue(name)
while simqueue.size() > 1:
for i in range(num):
simqueue.enqueue(simqueue.dequeue())
simqueue.dequeue()
return simqueue.dequeue()
浙公网安备 33010602011771号