队列这种数据结构更简单,就像我们生活中排队一样,它的特性是先进先出(FIFO)。

PHP SPL中SplQueue类就是实现队列操作,和栈一样,它也可以继承双链表(SplDoublyLinkedList)轻松实现。

SplQueue类摘要如下:

SplQueue简单使用如下:

复制代码 代码如下:

$queue = new SplQueue();

/**

* 可见队列和双链表的区别就是IteratorMode改变了而已,栈的IteratorMode只能为:

* (1)SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_KEEP  (默认值,迭代后数据保存)

* (2)SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE (迭代后数据删除)

*/

$queue->setIteratorMode(SplDoublyLinkedList::IT_MODE_FIFO | SplDoublyLinkedList::IT_MODE_DELETE);

//SplQueue::enqueue()其实就是 SplDoublyLinkedList::push()

$queue->enqueue('a');

$queue->enqueue('b');

$queue->enqueue('c');

//SplQueue::dequeue()其实就是 SplDoublyLinkedList::shift()

print_r($queue->dequeue());

foreach($queue as $item) {

echo $item . PHP_EOL;

}

print_r($queue);

而优先队列SplPriorityQueue是基于堆(后文介绍)实现的。

SplPriorityQueue的类摘要如下:

SplPriorityQueue简单使用:

?

php优先队列,PHP 数据结构队列(SplQueue)和优先队列(SplPriorityQueue)简单使用实例相关推荐

  1. 数据结构 - 队列简介 及 1个简单的c语言链式队列代码实现

    1. 队列的定义 所谓队列(queue)就是一种能实现"先进先出"的一种线性存储结构. 跟栈有点类似,  例如栈只有1个出入口, 任何元素进入或者离开栈都必须经过同1个出入口(栈顶 ...

  2. 数据结构队列之企业级应用--优先队列

    1.了解队列的存储方式 1.(1)数组形式存储 2. (2)链式存储(链表形式) (1)数组形式的存储方式为连续存储(顺序存储),也就是说该队列的地址是连续的.我们看下图: 该存储方式的头指针与尾指针 ...

  3. 数据结构及算法基础--优先队列(Priority Queue)

    这真的是一个包含很多东西的数据结构.我们会逐步解析,来讲解优先队列: 首先知道什么是优先队列: 普通的队列是一种先进先出的数据结构,元素在队列尾追加,而从队列头删除(first in, last ou ...

  4. 数据结构与算法(4)——优先队列和堆

    前言:题图无关,接下来开始简单学习学习优先队列和堆的相关数据结构的知识: 前序文章: 数据结构与算法(1)--数组与链表(https://www.jianshu.com/p/7b93b3570875) ...

  5. java先进先出 循环队列,JavaScript队列、优先队列与循环队列

    队列是一种遵从先进先出(FIFO)原则的有序集合 队列在尾部添加新元素,从顶部移除元素 队列的理解 队列在我们生活中最常见的场景就是排队了 队列这个名字也已经很通俗易懂了 和栈很像,这不过队列是先入先 ...

  6. 优先队列——二项队列(binominal queue)

    [0]README 0.1) 本文文字描述部分转自 数据结构与算法分析, 旨在理解 优先队列--二项队列(binominal queue) 的基础知识: 0.2) 本文核心的剖析思路均为原创(inse ...

  7. python循环队列_JS 队列-优先队列、循环队列

    <学习JavaScript数据结构与算法>读书笔记. 队列是遵行FIFO(First In First Out, 先进先出)原则的一组有序的项.队列再尾部添加新元素,并从顶部移除元素. 在 ...

  8. python 优先队列_python实现最大优先队列 python优先级队列如何最大值优先

    python优先级队列如何最大值优先 啥???????队列默认就有优先级即使告别爱情的时候,也希望你一切都好;小编不再爱你的时候,也许不是小编不爱你,只是,小编已不能再爱你. python3 优先队列 ...

  9. c语言优先队列对数组的排序,优先队列+sort+栈+队列讲解

    队列我们都知道,是一种先进后出的数据结构. 队列的基本操作http://blog.csdn.net/qq_32680617/article/details/50822430 而优先队列是把队列内部的数 ...

最新文章

  1. 删除linux目录下一半的文件,Linux面试题(一):删除一个目录下的所有文件,但保留一个指定文件...
  2. 【Alpha 冲刺】 1/12
  3. onkeydown为什么会无限回调_为什么投资者总喜欢在股票下跌时买入?只有傻瓜才能在股市里挣钱...
  4. Assembly generation failed Referenced assembly ‘xxx’ does not have a strong name
  5. 财务有必要学python吗-会计要学python
  6. 了解令人困惑的物联网平台世界
  7. QPainter绘制方法
  8. ansys转子动力学分析
  9. Linux Intel 无线网卡Wifi+蓝牙
  10. python的rs232通信_RS-232与Python的通信返回Gibberish
  11. 天宇优配|钠电池汽车要来了,续航达500公里!持续高成长股揭秘
  12. 2023年CSS面试题集合
  13. 网络安全(2) -- 关于一次XSS攻击-图片(img标签)的onerror事件
  14. pandas 数据查询实例
  15. 深度学习笔记(七)--ResNet(残差网络)
  16. 【论文阅读】Conversations Are Not Flat: Modeling the Dynamic Information Flow across Dialogue Utterances
  17. 亚太地区旅行限制放宽,香港、泰国、越南、韩国旅游消费明显增长,预计旺季将持续反弹 | 美通社头条...
  18. 第十章 SQL命令 CREATE PROCEDURE(一)
  19. 产品沉思录精选:交易平台的金字塔进阶
  20. 1.FHS(Filesystem Hierarchy Standard)文件系统层级标准--重点

热门文章

  1. 青春就是一无所有,梦想就是坚持走下去
  2. jeecg富文本编辑器增加字体(仿宋)
  3. LongAdder解析
  4. 【Redis学习笔记】2018-05-30 Redis源码学习之Ziplist、Server
  5. $\be$-QGE 的弱强唯一性
  6. Maven项目下HttpServletRequest 或 HttpServletResponse需引用的依赖包
  7. druid+spring配置
  8. 开放式创新改变世界——OpenStack生态系统将重新洗牌
  9. Chrome v28 会在pwd目录下生成libpeerconnection.log文件
  10. 奔图打印机显示未连接_手机连接奔图打印机,无法打印的解决方法