本文实例讲述了yii2实现的双向队列类及其用法,对于PHP数据结构与算法的学习有不错的参考价值。分享给大家供大家参考。具体分析如下:
deque(全名 double-ended queue)是一种具有队列和栈的性质的数据结构。双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。进行删除操作的端称为队头,进行插入操作的端称为队尾。队列,是按照先进先出或后进后出的原则组织数据。当队列中没有元素时,称为空队列。
Deque.php类文件代码如下:
<?php
/**
* 队列 - 缓存
*/
namespace backend\models;
use yii;
use yii\base\Model;
class Deque extends Model
{
/**
* 队列内部数组
* @var array
*/
public $queueArr = array();
/**
* 缓存名称
* @var string
*/
public $cacheName;
/**
* 初始化类
* @var string
* @param array $cacheName
*/
function __construct($cacheName = NULL)
{
$this->cacheName = $cacheName;
if(!empty($this->cacheName)){
if(!\Yii::$app->cache->exists($this->cacheName))
\Yii::$app->cache->add($this->cacheName, $