在PHP中,可以使用数组来实现双向队列。下面是一个示例代码:
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
类进行扩展,添加其他方法或功能。