探索:PHP雙向隊(duì)列實(shí)現(xiàn)

下面是實(shí)現(xiàn)雙向隊(duì)列的代碼
ps.以下內(nèi)容摘自其它論壇 本人只是個(gè)代碼搬運(yùn)工
/**
 * PHP實(shí)現(xiàn)雙向隊(duì)列 雙端隊(duì)列
 * 雙端隊(duì)列 (deque 全名double-ended queue) 是一種具有隊(duì)列和棧性質(zhì)的數(shù)據(jù)結(jié)構(gòu)
 * 雙端隊(duì)列中的元素可以從兩端彈出 插入和刪除操作限定在隊(duì)列的兩邊進(jìn)行
 */
class Deque {
    // 隊(duì)列存儲(chǔ)
    public $queue = array();

    /**
     * 構(gòu)造函數(shù)初始化隊(duì)列
     */
    public function __construct($queue = array()) {
        if (is_array($queue)) {
            $this->queue = $queue;
        }
    }

    /**
     * front
     * 獲取第一個(gè)元素
     */
    public function front() {
        return reset($this->queue);
    }

    /**
     * back 獲取第一個(gè)元素
     */
    public function back() {
        return end($this->queue);
    }

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

    /**
     * size 隊(duì)列大小
     */
    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 移除最后一個(gè)元素
     */
    public function popBack() {
        array_pop($this->queue);
    }

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

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

}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容