一、概述
队列是一种特殊的线性表,特殊之处在意它只允许在表的前端(front 队头)进行删除操作,而在表的后端(队尾)进行操作。即“先进先出”
二、Python实现队列类
# -*- coding: utf-8 -*-
"""
Spyder Editor
This is script file for Queue.
"""
class Queue:
def __init__(self,size):
self.size=size
self.front=-1
self.rear=-1
self.queue=[]
#入队操作
def enqueue(self,item):
if self.isfull():
raise exception("queue is full")
else:
self.queue.append(item)
self.rear=self.rear+1
#出队操作
def dequeue(self):
if self.isempty():
raise exception("queue is empty")
else:
self.front=self.front+1
return self.queue[self.front]
#判断队列是否已满
def isfull(self):
return self.rear-self.front+1==self.size
#判断队列是否为空
def isempty(self):
return self.front==self.rear
if __name__=="__main__":
q=Queue(10);
for i in range(3):
q.enqueue(i)
print(q.dequeue())
print(q.isempty())
测试结果如下所示: