队列 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