天天看點

資料結構與算法 3.隊列 Queue

隊列 Queue

隊列是一種特殊的線性表,隻能在頭、尾兩端進行操作
隊尾(rear):隻能從隊尾添加元素,叫做入隊,enQueue
隊頭(front):隻能從隊頭移除元素,叫做出隊,deQueue
FIFO的結構 First In First Out

隊列的接口設計:
    isEmpty()    判斷隊列是否為空
    size()       傳回隊列中元素數量
    enQueue()    入隊
    deQueue()    出隊
    front()      擷取隊頭元素

隊列的應用:
    需要處理大量消息時削峰
    生産者消費者模型
    用于程序之間通信
           
class Queue(object):
    def __init__(self):
        self.items = []

    # 判斷隊列是否為空
    def isEmpty(self):
        return self.items == []

    # 擷取隊列長度
    def size(self):
        return len(self.items)

    # 入隊
    def enQueue(self,item):
        self.items.append(item)

    # 出隊
    def deQueue(self):
        return self.items.pop(0)

    # 擷取隊頭元素
    def front(self):
        return self.items[0]

if __name__ == '__main__' :
    queue = Queue()
    queue.enQueue(11)
    queue.enQueue(22)
    queue.enQueue(33)
    queue.enQueue(44)
    res = queue.front()
    print(res)
    while queue.isEmpty() == False :
        res = queue.deQueue()
        print(res)

11
11
22
33
44
           

繼續閱讀