探索:PHP双向队列实现

下面是实现双向队列的代码
ps.以下内容摘自其它论坛 本人只是个代码搬运工
/**
 * PHP实现双向队列 双端队列
 * 双端队列 (deque 全名double-ended queue) 是一种具有队列和栈性质的数据结构
 * 双端队列中的元素可以从两端弹出 插入和删除操作限定在队列的两边进行
 */
class Deque {
    // 队列存储
    public $queue = array();

    /**
     * 构造函数初始化队列
     */
    public function __construct($queue = array()) {
        if (is_array($queue)) {
            $this->queue = $queue;
        }
    }

    /**
     * front
     * 获取第一个元素
     */
    public function front() {
        return reset($this->queue);
    }

    /**
     * back 获取第一个元素
     */
    public function back() {
        return end($this->queue);
    }

    /**
     * isEmpty 判断是否为空
     */
    public function isEmpty() {
        return empty($this->queue);
    }

    /**
     * size 队列大小
     */
    public function size() {
        return count($this->queue);
    }

    /**
     * pushBack 插入到尾部
     */
    public function pushBack($val) {
        array_push($this->queue, $val);
    }

    /**
     * pushFront 插入到头部
     */
    public function pushFront($val) {
        array_unshift($this->queue, $val);
    }

    /**
     * popBack 移除最后一个元素
     */
    public function popBack() {
        array_pop($this->queue);
    }

    /**
     * popFront 移除第一个元素
     */
    public function popFront($val) {
        array_shift($this->queue);
    }

    /**
     * clear 清空队列
     */
    public function clear() {
        $this->queue = array();
    }

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容