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)