溫馨提示×

php怎么實現(xiàn)雙向隊列

PHP
小億
87
2023-10-22 05:05:10
欄目: 編程語言

在PHP中,可以使用數(shù)組來實現(xiàn)雙向隊列。下面是一個示例代碼:

class Deque {
    private $deque;

    public function __construct() {
        $this->deque = [];
    }

    public function isEmpty() {
        return empty($this->deque);
    }

    public function pushFront($item) {
        array_unshift($this->deque, $item);
    }

    public function pushBack($item) {
        array_push($this->deque, $item);
    }

    public function popFront() {
        if ($this->isEmpty()) {
            return null;
        }
        return array_shift($this->deque);
    }

    public function popBack() {
        if ($this->isEmpty()) {
            return null;
        }
        return array_pop($this->deque);
    }

    public function peekFront() {
        if ($this->isEmpty()) {
            return null;
        }
        return $this->deque[0];
    }

    public function peekBack() {
        if ($this->isEmpty()) {
            return null;
        }
        return $this->deque[count($this->deque) - 1];
    }
}

$deque = new Deque();
$deque->pushFront(1);
$deque->pushBack(2);
$deque->pushBack(3);
echo $deque->popFront();  // 輸出: 1
echo $deque->popBack();  // 輸出: 3
echo $deque->peekFront();  // 輸出: 2
echo $deque->peekBack();  // 輸出: 2

在這個示例中,Deque 類表示一個雙向隊列。它使用一個數(shù)組 $deque 來存儲隊列中的元素。pushFront 方法將元素添加到隊列的前端,pushBack 方法將元素添加到隊列的后端。popFront 方法從隊列的前端移除并返回元素,popBack 方法從隊列的后端移除并返回元素。peekFront 方法返回隊列的前端元素,peekBack 方法返回隊列的后端元素。isEmpty 方法用于檢查隊列是否為空。

可以根據(jù)需要對 Deque 類進行擴展,添加其他方法或功能。

0