定义:

  特殊的线性表。

       

特点:

  1.先进先出;连结性。

  2.作为一种特殊性的表,主要是在表前端进行删除操作,我们称删除的端为对头(front);只能在表的后端进行插入操作,我们称之为称插入的端为对尾。

为什么使用队列:

  1.更好的异步处理数据和传输

  2.频繁的向数据库插入数据或者频繁的想搜索引擎提交数据等用户操作情况

  3.更好的处理慢的处理逻辑,有并发限制的处理逻辑。如发送邮件等批量处理操作

分类:

  1.顺序对列

  2.循环队列

顺序队列:

  定义:静态分配或者动态申请一片连续的存储空间,并设置两个指针进行管理,一个是队头指针(front),一个是对尾指针(rear)。

  特点:队尾rear增加1,队头删除增加1,随着队列的元素变化,队列所暂据的存储空间也在队列的结构所分配的存储空间移动。

  分类:空队列,溢出

  空队列:队列中不存在元素,对列增加(front)=队列删除(rear)

  溢出:

    1.下溢:当队列是空,做出队列运算的溢出现象。这属于正常现象,我们常用它来作为程序控制转移的条件。

    2.真上溢:当队列已满,做队列的进栈运算所产生的溢出现象。这属于错误现象。

    3.加上溢:

        1.当入队和出队操作,头尾指针只加不减,导致被删除的空间没被重复使用。

        2.当队列中实际的元素个数小于向量空间规模的模式,也可能由于尾针已经超越向量空间的上界而不能入队操作。

循环队列:

  目的:实现空间的循环利用(在开发中,使用此类型居多)

  定义:无论是删除还是插入,一旦队尾指针(rear)增加1或者对头指针减少增加1,超出了分配的空间,就让他指向起始向位置。

  元素:队列中,元素的最大个数最大只能为maxsize-1

  区别:当为空队列的时候,front=rear;同时队列已满。front=rear;

     如何来鉴别这两种呢?当front=rear的时候为空队列;当(front=rear+1)%maxsize的时候为满队列

  

          

PHP队列之理论篇的更多相关文章

  1. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  2. QoS专题-第1期-QoS理论篇

    QoS理论篇 1      QoS的产生 随着网络技术的飞速发展,IP网络已经从当初的单一数据网络向集成数据.语音.视频.游戏的多业务网络转变.网络中所承载的数据呈几何级倍数增长,而且这些业务对网络带 ...

  3. Python并发编程理论篇

    Python并发编程理论篇 前言 其实关于Python的并发编程是比较难写的一章,因为涉及到的知识很复杂并且理论偏多,所以在这里我尽量的用一些非常简明的语言来尽可能的将它描述清楚,在学习之前首先要记住 ...

  4. 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md

    前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...

  5. Lucene核心--构建Lucene搜索(上篇,理论篇)

    2.1构建Lucene搜索 2.1.1 Lucene内容模型 一个文档(document)就是Lucene建立索引和搜索的原子单元,它由一个或者多个字段(field)组成,字段才是Lucene的真实内 ...

  6. 游戏UI框架设计(一) : 架构设计理论篇

    游戏UI框架设计(一) ---架构设计理论篇 前几天(2017年2月)看到一篇文章,国内王健林.马云等大咖们看好的未来十大最有"钱途"产业中,排名第一的就是"泛娱乐&qu ...

  7. HTML5的Websocket(理论篇 I)

    HTML5的Websocket(理论篇 I) ** 先请来TA的邻居:** http:无状态.基于tcp请求/响应模式的应用层协议 (A:哎呀,上次你请我吃饭了么? B:我想想, 上次请你吃了么) t ...

  8. FPGA时序约束——理论篇

    在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...

  9. Oracle知识梳理(一)理论篇:基本概念和术语整理

    理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...

随机推荐

  1. flash8中利用遮罩制作图片切换效果

    http://www.56.com/w73/play_album-aid-8642763_vid-NDY5ODU2Mzg.html

  2. 类数组转数组Array.prototype.slice.call(arrayLike)

    转换方式:Array.prototype.slice.call(arrayLike) 附:(http://www.jianshu.com/p/f8466e83cef0) 首先Array.prototy ...

  3. angular - webpack2 例子

    用一周多的时间做了一个简易的wap站 之前研究过webpack但是一直没用过,这次公司要做一个h5网站,正好拿来练练手,话说angular1x对移动端不是很友好,但主要是angular1x比较熟悉,上 ...

  4. Java NIO(六) Selector

    Selector(选择器)是Java NIO中能够检测一到多个NIO通道,并能够知晓通道是否为诸如读写事件做好准备的组件.这样,一个单独的线程可以管理多个channel,从而管理多个网络连接. 下面是 ...

  5. C++之不带指针类的设计——Boolean

    经典的类设计分类 带指针类 不带指针类 Header文件的布局 #ifndef __COMPLEX__ #define __COMPLEX__ #include <iostream.h> ...

  6. Android NDK开发 网址

    http://www.cnblogs.com/shangdahao/archive/2013/05/01/3053146.html http://www.cnblogs.com/shangdahao/ ...

  7. java实现12306的45分钟内支付,45分钟后取消订单功能?

    java实现12306的45分钟内支付,45分钟后取消订单功能? - 回答作者: 匿名用户 https://zhihu.com/question/27254071/answer/35948645

  8. WCF 的优势和特点

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一.理解面向服务(Service-Oriented-Architecture)    是指为了解决在Internet环境下业务集成的需要,通过连接 ...

  9. Windows快捷操作技巧

    隐藏技能 在当前路径打开命令行 shift + 右键点击文件夹内的空白处,你会看到右键弹出菜单多了个选项 "在此处打开命令窗口",省去了打开命令行再cd到当前路径的麻烦. 快捷键 ...

  10. Linux文件压缩和解压缩命令

    Linux文件压缩和解压缩命令: tar 命令(打包并压缩的话,原文件也会默认存在) -c 建立打包档案 -x 解包 -t 查看包里的类容 -r 向包里追加文件 -v 显示打包过程 -f 文件 比如: ...