`
webcode
  • 浏览: 5946388 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

清华大学韩顺平讲师讲算法之二(下),用数组来建栈

 
阅读更多
<html>
<head>
<meta http-equiv='content-type' content='text/html;charset=utf-8'>
<title>使用数组来模拟栈的操作</title>
</head>
<body>
<p>php的数组中提供的入栈array_push,array_pop,今天我们要自己实现,入栈出栈。</p>
<?php
	class MyStack{
		private $top=-1;//默认为-1,表示此栈为空
		private $maxSize=5;//表示栈的最大容量
		private $stack=array();

		public function push($val){
			//是否已满
			if($this->top == $this->maxSize-1){
				echo '<br> its over now';
				return;
			}//if
			$this->top++;
			$this->stack[$this->top]=$val;
		}//push
		//显示栈的所有的数据方法
		public function showStack(){
			if($this->top==-1){
				echo '<br>its empty';
				return;
			}
			for($i=$this->top;$i>-1;$i--){
				echo '<br>stack['.$i.']='.$this->stack[$i];
			}
		}//showStack
		//出栈,把栈顶的值取出
		public function pop(){
			if($this->top == -1){
				echo '<br>its empty.';
				return;
			}else{
				//把栈顶的值,取出
				$topVal=$this->stack[$this->top];
				$this->top--;

				return $topVal;
			}//if
		}//pop

	}//class
	$mystack=new MyStack;
	$mystack->push('123');
	$mystack->push('abc');
	$mystack->push('a2b3');

	echo '<br>弹出前的样子:';
	$mystack->showStack();
	$val=$mystack->pop();
	echo '<br>pop 的数据是:'.$val;
	echo '<br>弹出后的样子是:';
	$mystack->showStack();
?>
</body>
</html>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics