zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    一个你爱,一个爱你,你选择哪一个
    Flask 中的 SQLAlchemy 使用教程
    Flas-SQLAchemy数据库操作使用学习笔记
    Flask-SQLAlchemy获取一个字段里去掉重复的数据
    Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结
    pycharm快捷键、常用设置、包管理
    [原创]python MySQLdb在windows环境下的安装、出错问题以及解决办法
    Highcharts下载与使用_数据报表图
    Markdown入门指南-指间阁
    Sublime Text3 配置markdown插件
  • 原文地址:https://www.cnblogs.com/yqpy/p/8579998.html
Copyright © 2011-2022 走看看