php实现栈操作(不用push pop 库函数)
直接上代码
<?php /*php不用库函数实现栈操作 * @author Geyaru 2019-04-20 */ class stack{ private $top = -1; //栈指针初始方向 private $maxSize = 0; private $stack; /**初始化栈参数 */ public function __construct($maxSize) { $this->maxSize = $maxSize; } /**入栈操作 *@param $val入栈的值 */ public function push($val) { if($this->top == $this->maxSize-1) { return 0; //栈满 } //入栈指针移动一个位置 $this->top++; //值存入栈容器 $this->stack[$this->top] = $val; } /**出栈操作 *@return 出栈值 */ public function pop(){ if($this->top==-1){ return 0; //栈空 } //出栈值 $valTop = $this->stack[$this->top]; //移动栈指针 $this->top--; return $valTop; } /**展示栈 */ public function showSatck(){ if($this->top==-1){ return 0; //栈空 } //循环输出 , 按先入后出 , 逆向循环输出 for($i = $this->top;$i<=0;$i--){ echo $this->stack[$i]; } } }
使用:
//模拟使用栈类 $stack = new Stack(5); //入栈 $stack -> push('芒果'); $stack -> push('橙子'); $stack -> push('龙眼'); $stack -> push('苹果'); $stack -> push('香蕉'); $stack -> push('香瓜'); //出栈 $stack -> pop(); //展示栈 $stack -> showSatck();
注: 原文参考地址 https://cloud.tencent.com/developer/article/1178500