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