说明:该文章是用数组来实现队列,所以主要会对数组做逻辑操作(数组的逻辑操作在上文有提到 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
<?php
require_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]
e
a
Array: size = 3, capacity = 4
[b,c,d]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。