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>

你可能感兴趣的:(数组,php堆栈)