php对实现栈的操作

来源:互联网 发布:smarty3 php handling 编辑:程序博客网 时间:2024/04/29 13:08
<?php
/**
 * php实现栈的出战和入栈操作                               
 * 栈是限定仅在表头进行插入和删除操作的线性表。
 * 它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,
 * 需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。
 */

class Mystack{
    private $top = -1;//栈顶
    private $maxSize = 5;

    private $stack = array();


    /**
     * [push description] 新增结点
     * @param  [type] $value [description]
     * @return [type]        [description]

     */

    public function push($value){
        if($this->top < $this->maxSize-1){    //判断栈最大值
            $this->top++;
            $this->stack[$this->top] = $value;
        }else{
            echo "栈已满";
            return false;
        }

    }


    /**
     * [pop description] 弹出栈顶
     * @return [type] [description]

     */


    public function pop(){
        if($this->top != -1){
            $topVal = $this->stack[$this->top];
            $this->top--;
            return $topVal;
        }else{
            echo "栈空";
            return false;
        }

    }


    /**
     * [showStack description] 显示当前栈的情况
     * @return [type] [description]

     */


    public function showStack(){
        $cur = $this->top;
        if($this->top == -1){
            echo "是个空栈";
            return false;
        }
        while($cur != -1){
            echo "<br/>".$this->stack[$cur];
            $cur--;
        }
    }
}
0 0
原创粉丝点击