Python数据结构———队列

Posted 嶙羽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python数据结构———队列相关的知识,希望对你有一定的参考价值。

队列(Queue)

队列也是一系列有顺序的元素的集合,新元素的加入在队列的一端,叫做“队尾”(rear),已有元素的移除发生在队列的另一端,叫做“队首”(front),和栈不同的是,队列只能在队尾插入元素,在队首删除元素。最新加入的元素必须处于队尾,在队列停留时间最长的元素处于队首。可以把队列想象成在银行前排队的人群,排在最前面的人第一个办理业务,新来的人只能在后面排队,直到轮到他们为止。这是一种先进先出(FIFO,First-In-First-Out)的数据结构。

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

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

队列Queue的操作:

Queue()        定义一个空队列,无参数,返回值是空队列。

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

模拟队列

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()
True
>>> q.enqueue(dog)
>>> q.enqueue(4)
>>> q.isEmpty()
False
>>> q.size()
2
>>> q.enqueue(True)
>>> q.size()
3
>>> q.dequeue()
dog
>>> q.size()
2

 

以上是关于Python数据结构———队列的主要内容,如果未能解决你的问题,请参考以下文章

python 用于数据探索的Python代码片段(例如,在数据科学项目中)

perl中的队列

Python数据结构系列☀️《队列(顺序队列链式队列双端队列)》——知识点讲解+代码实现☀️

第十一节 双端队列的概念和python代码实现

Python数据结构学习笔记——队列和双端队列

常用python日期日志获取内容循环的代码片段