美文网首页PHP档案馆
探索:PHP双向队列实现

探索:PHP双向队列实现

作者: 三天大愚 | 来源:发表于2016-06-16 13:13 被阅读134次
    下面是实现双向队列的代码
    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();
        }
    
    }

    相关文章

      网友评论

        本文标题:探索:PHP双向队列实现

        本文链接:https://www.haomeiwen.com/subject/beumdttx.html