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

猜你喜欢

转载自www.cnblogs.com/gyrgyr/p/10741347.html