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)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM