(实用篇)PHP实现队列及队列原理

队列说明

队列是一种线性表,按照先进先出的原则进行的:

640-webp

实现队列

PHP实现队列:第一个元素作为队头,最后一个元素作为队尾

<?php
/**
 * 队列就是这么简单
 * 
 * @link
 */
$array =  array('PHP', 'JAVA');
array_push($array, 'PYTHON'); //入队列
array_shift($array); //出队列

什么是双端队列(或双向队列)Deque,全名double-ended queue?

即元素可以在队列的任意一段入队或出队,如果我们把这些方法叫做insertLeft()和insertRight(),以及removeLeft()和removeRight()。如果严格禁止调用insertLeft()和removeLeft()方法(或禁用右段的操作),双端队列功能就和栈一样。禁止调用insertLeft()和removeRight()(或相反的另一对方法),它的功能就和队列一样了。双端队列与栈或队列相比,是一种多用途的数据结构。

PHP实现双端队列

<?php
class Deque  
{ 
    public $queue = array(); 
    
    /**(尾部)入队  **/ 
    public function addLast($value)  
    { 
        return array_push($this->queue,$value); 
    } 
    /**(尾部)出队**/ 
    public function removeLast()  
    { 
        return array_pop($this->queue); 
    } 
    /**(头部)入队**/ 
    public function addFirst($value)  
    { 
        return array_unshift($this->queue,$value); 
    } 
    /**(头部)出队**/ 
    public function removeFirst()  
    { 
        return array_shift($this->queue); 
    } 
    /**清空队列**/ 
    public function makeEmpty()  
    { 
        unset($this->queue);
    } 
    
    /**获取列头**/
    public function getFirst()  
    { 
        return reset($this->queue); 
    } 
 
    /** 获取列尾 **/
    public function getLast()  
    { 
        return end($this->queue); 
    }
 
    /** 获取长度 **/
    public function getLength()  
    { 
        return count($this->queue); 
    }
    
}

队列的用途:

队列可以很好地异步处理数据传送和存储,当你频繁地向数据库中插入数据、频繁地向搜索引擎提交数据,就可采取队列来异步插入。另外,还可以将较慢的处理逻辑、有并发数量限制的处理逻辑,通过消息队列放在后台处理,例如FLV视频转换、发送手机短信、发送电子邮件等。

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处:https://www.cwhello.com/1434.html

(0)
上一篇 2016年10月26日 08:12
下一篇 2016年10月26日 08:34

相关推荐

  • php如何实现网页常见文件上传功能

    用php实现网页常见的文件上传功能,供大家参考,具体内容如下上传页面<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title...

    2022年6月15日
    074
  • (实用篇)php中计算中文字符串长度、截取中文字符串的函数代码

    在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数并非PHP的核心函数,所以,它们常常有可能没有开启。当然,如果是用的自己的服务器,则只要在php.ini中开...

    2016年10月25日
    0195
  • (安全篇)PHP 的错误机制详解

    PHP 的错误机制也是非常复杂的,特别说明:文章的PHP版本使用5.5.32 PHP的错误级别 首先需要了解php有哪些错误。截至到php5.5,一共有16个错误级别 注意:尝试下面的代码的时候请确保打开error_log: error_reporting(...

    2017年5月25日
    0133
  • (实用篇)PHP7.0新特性

    1.标量参数类型声明 现在支持字符串(string)、整型(int)、浮点数(float)、及布尔型(bool)参数声明,以前只支持类名、接口、数组及Callable 两种风格:强制转换模式(默认)与严格模式 <?php // Coercive mode fun...

    2016年10月26日
    0122
  • PHP数组的基本使用

    基本使用 获取到一个元素中的值; 写数组名(变量名)[下标];    //必须知道下标是什么,只能打印输出一个值 数组的遍历--遍历就是一个一个的自动获取 For循环遍历数组--只能遍历索引数组 Foreach循环变量数组--都可以...

    2018年4月8日
    0112
  • php4中的文件操作

    resource fopen ( string filename, string mode ) 打开某个文件,返回指向这个文件的资源 string filename:要被打开的文件 string mode:打开模式   Mode      说明 "r"    只读方式打开,将文件指针指向文件...

    2017年11月14日
    0109
  • php的成员方法(函数)

    一个需求 当我们需要让对象完成某个任务(比如计算,比如上传下载文件,分页等等), 就需要在类中定义函数, 这时我们就将这样的函数称为 成员方法. 举例说明: 代码:...

    2018年4月9日
    0130
  • PHP $_POST变量(数组)

    类似$_GET变量(数组),$_POST代表页面通过post方式提交过来的数据所形成的数组。 post提交数据,通常只有一种形式: <form  action=”abc.php”  method=”post” > 项目1: <input type=”text”   name=”uNam...

    2017年11月7日
    0273