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 クラスにメソッドや機能を追加して拡張できる