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)