PHPで両端キューを実装する方法

PHPでは、Arrayを使用して双方向キューを実装できます。以下にサンプルコードを示します。

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クラスは両端キューを表します。キュー内の要素を格納するために配列$dequeを使用しています。pushFrontメソッドは要素をキューの先頭に、pushBackメソッドは要素をキューの末尾に追加します。popFrontメソッドはキューの先頭から要素を削除して戻り、popBackメソッドはキューの末尾から要素を削除して戻します。peekFrontメソッドはキューの先頭の要素を、peekBackメソッドはキューの末尾の要素を返します。isEmptyメソッドはキューが空かどうかを確認するために使用されます。

必要に応じて、Deque クラスにメソッドや機能を追加して拡張できる

bannerAds