python实现循环列表

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)

  

原文地址:https://www.cnblogs.com/linwenbin/p/11698719.html