《Python数据结构与算法分析》(第二版)
实现队列:用列表实现队列,假设列表的位置0处为队尾,则利用列表的insert操作实现入队,用列表的pop操作实现出队。
class Queue:
def __init__(self):
self.items = []
def isEmpty(self):
return self.items == []
def enqueue(self, item):
self.items.insert(0, item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
1.实现约瑟夫斯问题
约瑟夫斯当年和39各战友在山洞中对抗罗马军队。在即将失败时,他们决定自杀。他们围成一圈,从某个人开始,按顺时针方向杀掉第七个人。约瑟夫斯找到了自己应该站的位置,活到了最后。
from pyQueue import Queue
def Josephus(namelist, num):#namelist是一个名字列表,num代表第几个位置的人出局
simqueue = Queue()#创建一个队列
for name in namelist:#把名字列表逐个导入队列
simqueue.enqueue(name)
while simqueue.size() > 1: