阐明:该文章是用数组来实现队列,所以次要会对数组做逻辑操作(数组的逻辑操作在上文有提到 https://segmentfault.com/a/11...)
1. 实现逻辑
<?php/** * content: 数组队列的实现 * create: 2020-10-21 */namespace QueueBundle;use StackBundleBaseArrayStack;class BaseArrayQueue extends BaseArrayStack{ /** * 从后面插入数据 * @return mixed|null */ public function shift() { return $this->baseArray->del(0); } /** * 从后面弹出数据 * @param $value */ public function unshift($value): void { $this->baseArray->addFirst($value); }}
2. 执行逻辑
<?php<?phprequire_once __DIR__. '/../vendor/autoload.php';$queue = new QueueBundleBaseArrayQueue(new ArrayBundleBaseArray(1));// 从开端插入3个元素$queue->push('c');$queue->push('d');$queue->push('e');// 从后面插入2个元素$queue->unshift('b');$queue->unshift('a');// 打印队列echo $queue. PHP_EOL;// 从队列的开端弹出echo $queue->pop(). PHP_EOL;// 从队里的头部弹出echo $queue->shift(). PHP_EOL;// 打印队列echo $queue. PHP_EOL;
3. 打印后果
Array: size = 5, capacity = 8[a,b,c,d,e]eaArray: size = 3, capacity = 4[b,c,d]