class Loop_Queue2(object): ''' 实现循环列表 ''' def __init__(self,maxsize): ''' 初始化,命令头部元素的序号,尾部元素的序号,定义序列列表 :param maxsize: 传入列表的最大长度 ''' self.queue=[None]*maxsize self.maxsize=maxsize self.front=0 self.rear=0 def getSize(self): ''' 获取循环列表的长度 :return: 循环队列的长度 ''' return (self.rear-self.front+self.maxsize)%self.maxsize def enQueue(self,data): ''' 向循环队列的队尾插入数据 :param data: 插入的值 :return: None ''' if (self.rear+1)%self.maxsize==self.front: print("The queue is full") else: self.queue[self.rear]=data self.rear=(self.rear+1)%self.maxsize def deQueue(self): ''' 从队首删除一个元素 :return: 删除元素 ''' if self.rear==self.front: print("The queue is empty!") else: data=self.queue[self.front] self.queue[self.front]=None self.front=(self.front+1)%self.maxsize return data def showQueue(self): ''' 打印出队列 :return: None ''' for i in range(self.maxsize): print(self.queue[i],end=",") print("") if __name__=="__main__": q=Loop_Queue2(15) for i in range(15): q.enQueue(i) q.showQueue() for i in range(15): q.deQueue() q.showQueue() for i in range(8): q.enQueue(i) q.showQueue() print(q.front) print(q.rear) # print(q.deQueue()) # for i in range(15): q.enQueue(i) q.showQueue() for i in range(15): q.deQueue() q.showQueue() for i in range(8): q.enQueue(i) q.showQueue() print(q.front) print(q.rear)