来源:互联网 发布:雷电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
原创粉丝点击