推荐:《PHP视频教程》

一、栈的定义及知识

1.定义:栈又称为栈或者堆叠,是计算机科学中的一种特殊的串列形式的抽象数据类型,特殊之处在于只允许在链表或者数组的一端(堆栈顶端指针,又称 "top")加入数据push(压栈)和输出数据pop(弹栈),另外栈也可以使用一维数组和链表来实现。

2.栈的特点:

a.先进后出(后进先出),也就是说,我们只能在栈顶端push(压栈)加入数据,也只能在栈顶端pop(弹栈)删除数据;

b.栈除了top(栈顶)和base(栈底)之外,其他的每个元素都有一个前驱和后继;

二、php简单实现栈结构

<?phpclass HeapStack{    private $stackArr = array();    private $stackMaxTop = 10; // 栈顶最大值(用于控制栈长度,是否栈满)    private $top = -1; // 栈顶(会随着push或pop的操作而变化)    private $out;    /**     * 入栈     *     */    public function pushValue($value='')    {        if(empty($value))            return '压入的值不能为空';        if($this->top == $this->stackMaxTop)            return '栈内已满';        array_push($this->stackArr, $value);        ++$this->top;        return '入栈成功,栈顶值:'.$this->top;    }    /**     * 出栈     *     */    public function popValue()    {        if($this->top == -1)            return '栈内没有数据';        $this->out = array_pop($this->stackArr);        --$this->top;        return '出栈成功,当前栈顶值:'.$this->top.'出栈值:'.$this->out;    }    /**     * 获取栈内信息     */    public function getSatck()    {        return $this->stackArr;    }    public function __destruct()    {        echo 'over ';    }}$stack = new HeapStack();echo $stack->pushValue('stackValue')."\n";echo $stack->pushValue('stackValue2')."\n";var_dump($stack->getSatck());echo $stack->popValue()."\n";var_dump($stack->getSatck());

更多相关文章

  1. PHP结合MySQL实现千万级数据处理
  2. 5种PHP定义数组的方法
  3. 关于PHP循环读取json数据的方法
  4. PHP常见数组排序方法小汇总
  5. 数组转json后的结果是数组还是对象? (踩坑记录)
  6. 一个查看xhprof数据文件的docker镜像
  7. PHP怎么把JSON转换成数组?
  8. PHP传递数组格式参数到shell脚本中

随机推荐

  1. 惊叹,Pyecharts绘制饼图原来可以如此漂亮!
  2. 结婚这件小事
  3. Matplotlib 动态图还可以这样玩,收藏了!
  4. (美团)巧用数组下标,轻轻松松找出所有元素
  5. 字节一面,面试官告诉我链表掌握的不熟练
  6. 晚上看了轮子哥的知乎想法,我失眠了
  7. 计算机专业的学生怎样练习编程才能把编程
  8. LeetCode 题解:一顿操作猛如虎,一看击败百
  9. 2021 年,程序员技术公众号生死劫
  10. 起个简单枯燥的标题:找出连续差相同的数字