定义:

  特殊的线性表。

       

特点:

  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. git取消本地commit

    如果不小心commit了一个不需要commit的文件,可以对其进行撤销. 先使用git log 查看 commit日志 commit 422bc088a7d6c5429f1d0760d008d86c5 ...

  2. .NET开源工作流RoadFlow-表单设计-隐藏域

    隐藏域即<input type="hidden" value=""/>标签:

  3. Cass和ArcGIS交换

    南方cass图形为CAD,把CAD图形转换成arcgis没有任何问题,到属性有问题,cass存放数据是放在CAD扩展XDATA中,和 arcgis导入导出CAD标准扩展属性不一样,只能二次开发使用,c ...

  4. 学习spring mvc

    http://www.cnblogs.com/bigdataZJ/p/springmvc1.html

  5. 面试题之------Java 反射机制

    一.反射机制概述 Java 反射机制是在运行状态中,对于任意一个类,都能够获得这个类的所有属性和方法,对于任意一个对象都能够调用它的任意一个属性和方法.这种在运行时动态的获取信息以及动态调用对象的方法 ...

  6. 使用本地计划任务定时关闭azure虚拟机

    本文包含以下内容 前提条件 如何实现定时关闭虚拟机 前提条件 Controller 机器上必须安装 Azure PowerShell,并且要在 PowerShell 里登录一次 Azure, 请参见: ...

  7. String, StringBuffer and StringBuilder

    一 String 概述: String 被声明为 final,因此它不可被继承. 在 Java 8 中,String 内部使用 char 数组存储数据. public final class Stri ...

  8. ACM-ICPC(11/8)

    URAL 1005 给定一些石头的重量,要求分成两个部分最相近.二进制暴力枚举. #include <bits/stdc++.h> using namespace std; ]; int ...

  9. ACM-ICPC (10/19)

    这两天在看虚树,的确很难理解. 不过大致的思路就是说删掉一些没有用的点,但是仍然保持树的相对结构,树上只有两种点,一个是集合点,和一些LCA,这些LCA是为了保持树的相对结构,才留下的. 具体做法网上 ...

  10. cblas_sgemm cblas.h

    BLAS(Basic Linear Algebra Subprograms)库,是用Fortran语言实现的向量和矩阵运算库,是许多数值计算软件库的核心, 但也有一些其它的包装, 如cblas是C语言 ...