阐明:该文章是用数组来实现队列,所以次要会对数组做逻辑操作(数组的逻辑操作在上文有提到 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]