<?php /** * 双向队列 */ class Deque { private $queue = array(); /** * 队尾入队 * * @param mixed $value 入队元素 * @return int 队列长度 */ public function inRear($value) { return array_push($this->queue, $value); } /** * 队头出队 * * @return mixed 出队元素,若队列为空则返回null */ public function outFront() { return array_shift($this->queue); } /** * 队头入队 * * @param mixed $value 入队元素 * @return int 队列长度 */ public function inFront($value) { return array_unshift($this->queue, $value); } /** * 队尾出队 * * @return mixed 出队元素,若队列为空则返回null */ public function outRear() { return array_pop($this->queue); } /** * 获取队头 * * @return mixed 队头元素,若队列为空则返回false */ public function getFront() { return reset($this->queue); } /** * 获取队尾 * * @return mixed 队尾元素,若队列为空则返回false */ public function getRear() { return end($this->queue); } /** * 获取整个队列 * * @return array */ public function getQueue() { return $this->queue; } } $deque = new Deque(); $deque->inFront('张三'); $deque->inRear('李四'); print_r($deque->getQueue());
Copyright © 2024 码农人生. All Rights Reserved