栈
来源:互联网 发布:雷电ol相似网络手游 编辑:程序博客网 时间:2024/05/16 07:47
概念:栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈的顶。对栈的基本操作有push 和Pop,前者进栈相当于插入操作,后者出栈相当于删除操作。栈也是种进过变种的线性表(后进先出)
下图表示进过诺干操作过后一个抽象的栈,
<?php/** * Created by PhpStorm. * User: think * Date: 2016/2/14 * Time: 16:41 */class Stack { private $top=-1; //默认是-1,表示该栈是空的 private $maxSize=5; //$maxSize表示栈最大容量 private $stack=array(); //入栈的操作 public function push($val){ //先判断栈是否已经满了 if($this->top==$this->maxSize-1){ echo'<br/>栈满,不能添加'; return; } $this->top++; //先加再放 $this->stack[$this->top]=$val; //就入栈了 } //出栈的操作,就是把栈顶的值取出 public function pop(){ //判断是否栈空 if($this->top==-1){ echo'<br/>栈空'; return; } //把栈顶的值,取出 $topVal=$this->stack[$this->top]; $this->top--; return $topVal; } //显示栈的所有数据的方法 public function showStack(){ if($this->top==-1){ echo'<br/>栈空'; return; } echo'<br/>当前栈的情况是...'; for($i=$this->top;$i>-1;$i--){ //反着显示 echo'<br/>stack['.$i.']='.$this->stack[$i]; //从栈顶开始显示 } }}$mystack=new Stack;$mystack->push('test1');$mystack->push('test2');$mystack->push('test3');$mystack->push('test4');$mystack->push('test5');$mystack->push('test6');//$mystack->showStack();$val=$mystack->pop();echo'<br/>pop出栈了一个数据'.$val;$mystack->showStack();/*$val=$mystack->pop();echo'<br/>pop出栈了一个数据'.$val;$mystack->showStack();$val=$mystack->pop();echo'<br/>pop出栈了一个数据'.$val;$mystack->showStack();$val=$mystack->pop();echo'<br/>pop出栈了一个数据'.$val;$mystack->showStack();$val=$mystack->pop();echo'<br/>pop出栈了一个数据'.$val;$mystack->showStack();*/
0 0
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- 栈
- HA 高可用集群
- iOS开发笔记-圆滑的曲线
- rocketmq3.26研究之Failover下producer的表现
- PHP代码段
- KM(n^4)模板
- 栈
- 从点到面,给Button的属性动画
- 二叉树 深度优先搜索 宽度优先搜索
- Android检测手机系统版本号、手机品牌工具类
- http://blog.csdn.net/chenli522/article/details/17001823
- rocketmq3.26研究之Failover下consumer的表现
- [RED5]用red5做视频直播(red5流媒体直播)
- KM(N^3)模板(HDU2255)
- rocketmq问题汇总-broker配置brokerIp2何时该配置?