Python数据结构——队列

队列是一种列表,不一样的是队列只能在队尾插入元素,在队首删除元素。队列用于存储按顺序排列的数据,先进先出,这点和栈不同,在栈中,最后入栈的元素反而被优先处理。能够将队列想象成在银行前排队的人群,排在最前面的人第一个办理业务,新来的人只能在后面排队,直到轮到他们为止。数据结构

队列是一种先进先出(First-In-First-Out,FIFO)的数据结构。队列被用在不少地方,好比提交操做系统执行的一系列进程、打印任务池等,一些仿真系统用队列来模拟银行或杂货店里排队的顾客。测试

图片描述

队列的两种主要操做是:向队列中插入新元素和删除队列中的元素。插入操做也叫作入队,删除操做也叫作出队。入队操做在队尾插入新元素,出队操做删除队头的元素。spa

队列的另一项重要操做是读取队头的元素。这个操做叫作peek()。该操做返回队头元素,但不把它从队列中删除。除了读取队头元素,咱们还想知道队列中存储了多少元素,能够使用size()知足该需求。操作系统

queue一般的操做:code

Queue()        定义一个空队列,无参数,返回值是空队列。
enqueue(item)  在队列尾部加入一个数据项,参数是数据项,无返回值。
dequeue()      删除队列头部的数据项,不须要参数,返回值是被删除的数据,队列自己有变化。
isEmpty()      检测队列是否为空。无参数,返回布尔值。
size()         返回队列数据项的数量。无参数,返回一个整数。

队列操做举例:队列

Queue Operation Queue Contents Return Value
q.isEmpty() [] True
q.enqueue(4) [4]
q.enqueue('dog') ['dog',4]
q.enqueue(True) [True,'dog',4]
q.size() [True,'dog',4] 3
q.isEmpty() [True,'dog',4] False
q.enqueue(8.4) [8.4,True,'dog',4]
q.dequeue() [8.4,True,'dog'] 4
q.dequeue() [8.4,True] 'dog'
q.size() [8.4,True] 2

Queue 类模拟:进程

class Queue:
    """模拟队列"""
    def __init__(self):
        self.items = []

    def isEmpty(self):
        return self.items == []

    def enqueue(self, item):
        self.items.insert(0,item)

    def dequeue(self):
        return self.items.pop()

    def size(self):
        return len(self.items)

如下是测试代码:图片

q=Queue()
q.isEmpty()

q.enqueue('dog')
q.enqueue(4)
q=Queue()
q.isEmpty()

q.enqueue(4)
q.enqueue('dog')
q.enqueue(True)
相关文章
相关标签/搜索