乐趣区

关于php:2-数据结构PHP实现-用数组来实现栈

阐明:该文章是用数组来实现栈,所以会继承数组的逻辑操作(数组的逻辑操作在上文有提到 https://segmentfault.com/a/11…)

1. 实现逻辑

<?php
/**
 * content: 数组栈的实现
 * create: 2020-10-20
 */
namespace StackBundle;

use ArrayBundleBaseArray;

class BaseArrayStack extends BaseArray
{
    /**
    * 弹出栈顶元素
    * @return mixed
    */
    public function pop()
    {return $this->del($this->size - 1);
    }
    
    /**
    * 从栈顶插入元素
    * @param mixed $value
    */
    public function push($value): void
    {$this->addLast($value);
    }
    
    /**
     * 敞开从栈头插入元素的办法
     * @param mixed $value
     */
    public function addFirst($value): void
    {exit('插入谬误!栈构造无奈在最后面插入数据,只能从尾部插入');
    }
}

2. 执行逻辑

<?php
require_once __DIR__. '/../vendor/autoload.php';
$stack = new StackBundleBaseArrayStack(1);
// 从栈的顶部插入 5 个元素
$stack->push('a');
$stack->push('b');
$stack->push('c');
$stack->push('d');
$stack->push('e');
// 从栈的顶部弹出 4 个元素
echo $stack->pop(). PHP_EOL;
echo $stack->pop(). PHP_EOL;
echo $stack->pop(). PHP_EOL;
echo $stack->pop(). PHP_EOL;

echo $stack;

3. 打印后果

e
d
c
b
Array: size = 1, capacity = 1
[a]
退出移动版