数据结构中的队列

原创 2017年11月15日 12:43:08


生活中很多时候需要排队来维持秩序,如等公交、取票、办理银行业务等。

队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。

队列是一种先进先出的(First In First Out)的线性表,简称FIFO。允许插入的一端为队尾,允许删除的一端为队头。队列不允许在中间部位进行操作!假设队列是q=(a1,a2,……,an),那么a1就是队头元素,而an是队尾元素。这样我们就可以删除时,总是从a1开始,而插入时,总是在队列最后。这也比较符合我们通常生活中的习惯,排在第一个的优先出列,最后来的当然排在队伍最后。


队列的实现

同栈一样,队列也可以用顺序表或者链表实现。

操作

  • Queue() 创建一个空的队列
  • enqueue(item) 往队列中添加一个item元素
  • dequeue() 从队列头部删除一个元素
  • is_empty() 判断一个队列是否为空
  • size() 返回队列的大小
class Queue(object):
    """队列"""
    def __init__(self):
        self.items = []

    def is_empty(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)

if __name__ == "__main__":
    q = Queue()
    q.enqueue("hello")
    q.enqueue("world")
    q.enqueue("itcast")
    print q.size()
    print q.dequeue()
    print q.dequeue()
    print q.dequeue()


版权声明:本文为博主原创文章,未经博主允许不得转载。

C++实现数据结构-队列

最近学了C++,看了下数据结构的东西,这里就跟大家分享一下自己用C++实现队列的一些思想和经验,适合初学者交流学习。 队列分类 队列在数据结构中分为普通队列和环形队列。首先说说普通队列,就是一种类似...
  • CV_YOU
  • CV_YOU
  • 2016年09月19日 21:07
  • 1152

数据结构-队列(queue)

队列(queue)是一种采用先进先出(FIFO)策略的抽象数据结构,它的想法来自于生活中排队的策略。顾客在付款结账的时候,按照到来的先后顺序排队结账,先来的顾客先结账,后来的顾客后结账。队列实现同栈的...
  • juanqinyang
  • juanqinyang
  • 2016年05月09日 16:51
  • 5680

java数据结构队列(Queue)之个人理解

1. 队列定义   队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表。 (1)允许删除的一端称为队头(Front)。 (2)允许插入的一端称为队尾(Rear...
  • u010268227
  • u010268227
  • 2016年11月09日 21:20
  • 1034

C++数据结构 之 队列_Queue

C++数据结构 之 队列_Queue源代码只包含头文件注:需要C++11的支持。
  • liu798675179
  • liu798675179
  • 2016年08月10日 11:40
  • 1398

数据结构中队列的基本操作实现

队列是一种特殊的线性表,
  • smile5005
  • smile5005
  • 2014年11月23日 16:55
  • 1375

【数据结构】——-栈、队列和数组(三)

本篇我们来介绍下数据结构中的数组: 在程序设计语言中,数组是我们较为熟悉的一种数据类型。几乎所有的程序设计语言都把数组类型设定为固定的类型。 一、数组的逻辑结构和基本运算 数组可...
  • singit
  • singit
  • 2017年04月14日 20:45
  • 669

优先级队列是一种什么样的数据结构

优先级队列(PriprityQueue)是一种无界队列,基于优先级堆,它的元素根据自然顺序或者通过实现Comparator接口的自定义排序方式进行排序。这篇文章,我们将创建一个Items的优先级队列,...
  • chuntiandejiaobu10
  • chuntiandejiaobu10
  • 2016年09月07日 20:52
  • 759

【数据结构与算法】 队列——队列的应用举例

队列的应用举例1(共2例) 打印杨辉三角                1              1  1            1  2  1          1  3  3  1  ...
  • TW_345
  • TW_345
  • 2015年11月27日 13:16
  • 1230

(三)实际项目中数据结构—队列的应用

1.队列:一种数据结构,有非阻塞对列和阻塞对列 特点:先进先出 两种典型操作:队尾添加、队头删除 非阻塞对列:当对列满或空时进行插入或者读取删除操作,抛出异常或者返回false,不对当前线程阻塞,没有...
  • zzw222222
  • zzw222222
  • 2016年10月25日 10:06
  • 1431

数据结构(队列)

建立一个队,1,3,5,7,9入队,再出队列。 链队列的方法和循环队列两种方法。 首先是链队列: #include #include #define TRUE 1 #define F...
  • xujinsmile
  • xujinsmile
  • 2012年03月21日 00:43
  • 3561
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数据结构中的队列
举报原因:
原因补充:

(最多只允许输入30个字)