python实现队列

什么是队列?

队列是一种数据结构,一系列有顺序对象的集合。就像我们排队一样,队列的特征是先进先出,从队尾入队,从队首出队。由于队尾的特性,我们只能对队列的首尾两个数据进行操作。下表列出队列的一些操作:

方法 操作
Queue() 创建一个空队列
enqueue(data) 将数据添加到队尾,无返回值
dequeue() 删除队首数据
isempty() 判断队列是否为空,返回bool值
size() 返回队列数据个数

python实现队列的代码如下:

class Queue(object):
	# 队列初始化
    def __init__(self):
        self.datas = []

	#判断是否为空
    def isempty(self):
        return self.datas == []
	
	#入队
    def enqueue(self,data):
        self.datas.insert(0,data)
	
	#出队,返回队尾值
    def dequeue(self):
        return self.datas.pop()
    #返回队列规模
    def size(self):
        return len(self.datas)

来看一个实例应用,传花游戏。一群人围成一圈传n次花,传完n次后,拿花的人出圈,游戏进行到只剩最后一个人。
来看代码实现

def hotpotato(namelist,num):
    s = Queue()
    for i in namelist:
        s.enqueue(i)
    while s.size() > 1:
        for i in range(num-1):
            s.enqueue(s.dequeue())
    return s.datas[0]


if __name__ =="__main__":
    s = ['sa','fa','ga','da']
    print(hotpotato(s,3))
    print(3)
上一篇:php 实现快递鸟API接口签名 快递查询对接更高效


下一篇:Shell入门,关于语法的一些简单玩意儿