php--数组来模拟堆栈

<!DOCTYPE unspecified PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>php--数组来模拟堆栈</title></head>
<body>
<?php
 class MyStack{
	 private $top=-1; //模拟栈底,指向-1
	 private $maxSize=5; //模拟栈的容量为5
	 private $stack=array();//用来数组来模拟,想数组内填入栈的内容
	  
	  //入栈操作
     public function push($val){
	 ///先判断栈是否已满
	 if($this->top==$this->maxSize-1){
	 echo '栈满,不能添加</br>';
     return; //栈满 返回
	 }
	 //先top上移,然后填充栈内容
	 $this->top++;
     $this->stack[$this->top]=$val;
	 } 
	 //出栈
	 public function pop(){
	 if($this->top==-1){
	 echo '栈空</br>';
     return; //空栈,无数据,返回
	 }
	 //取出栈顶的数据,同时把该数据返回,别忘了把top指针下移
	 $topValue=$this->stack[$this->top];
	 $this->top--;
	 return $topValue;

	 }
	 //显示栈的所有信息
	 public function showStack(){
	 
	 if($this->top==-1){
	 echo '栈空!</br>';
	 return;//空栈,无数据,返回
	 }
	 //结合堆栈的数据结构,是后进先出类型的,因此从栈顶开始,依次往下读出栈的内容
	 for($i=$this->top;$i>-1;$i--){
		echo 'Stack['.$i.']='.$this->stack[$i].'</br>'; 
	 }
	 }
 }

$stack=new MyStack();
$stack->push('111');
$stack->push('222');
$stack->showStack();


?>
</body>
</html>

转载于:https://my.oschina.net/mojiadan/blog/114053

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值