PHP实现队列及队列原理

编程之家收集整理的这篇文章主要介绍了PHP实现队列及队列原理编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


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

<?PHP
/**
* 队列就是这么简单
*
* @link
*/
$array =  array('PHP','JAVA');
array_push($array,17)">'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);
   }
   /**(尾部)出队**/
   function removeLast()  
   {
       return array_pop($this->queue);
   }
   /**(头部)入队**/
   function addFirst($value)  
   {
       return array_unshift($this/**(头部)出队**/
   function removeFirst()  
   {
       return array_shift($this/**清空队列**/
   function makeEmpty()  
   {
       unset($this->queue);
   }
   
   /**获取列头**/
   function getFirst()  
   {
       return reset($this->queue);
   }

   /** 获取列尾 **/
   function getLast()  
   {
       return end($this->queue);
   }

   /** 获取长度 **/
   function getLength()  
   {
       return count($this->queue);
   }
   
}

队列的用途:

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

总结

以上是编程之家为你收集整理的PHP实现队列及队列原理全部内容,希望文章能够帮你解决PHP实现队列及队列原理所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

小编个人微信号 jb51ccc
喜欢与人分享编程技术与工作经验,欢迎加入编程之家官方交流群!

相关文章

猜你在找的PHP相关文章

PHP使用百度地图api 获取指定地址的经纬度
try{ throw exception(&#39;抛出异常&#39;,403) // 尝试执行,如果有异常 就抛出异常 echo &#39;aaa&#39; //此处不会执行 }catch (exc
1.防止sql注入-预准备 mysqli: $qSelect = $DBH->prepare("SELECT * FROM users WHERE username = ?"
strlen(); strlen 和 mb_strlen 都是用于获取字符串长度的, 其中 strlen 只针对单字节编码字符,也就是说它计算的是 字符串的总字节数,如果是多字节编码,如 gbk 和
今天实现上传文件和指定路径下文件进行对比时,用到了这个array_map方法,传入的回调函数里面执行 array_splice()方法时,却报错第一个参数不是一个数组,给定的null。 起初在arra
什么是时间轮算法?把任务放到它需要被执行的时刻,然后等待时针转到这个时刻,取出该时刻的任务,执行并将任务从该时刻删除(消费)。解决了什么问题?以商品为例,如何实现商品的过保质期自动失效?1:我们可以每分
为了简单快速的接入,在申请支付宝商户后,我们可通过沙箱应用进行测试准备证书首先登录支付宝开放平台沙箱环境:开放平台-沙箱环境在 RSA2(SHA256)密钥 设置中的加签模式选择 公钥证书,然后访问&nb
这篇文章在很早以前就看到了,由于最近要自己做一些主题方面的东西,代码需要更加规范,用这些反面的例子来约束自己,告诉自己代码不应该这样写,虽然它也能实现功能,但那样做并不明智,也不美观。现在将这些小花絮