[PHP语言] 教你用php实现栈结构

[复制链接]
查看1307 | 回复4 | 2020-10-28 19:04:14 | 显示全部楼层 |阅读模式

推荐:《PHP视频教程》

一、栈的定义及知识

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

2.栈的特点:

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

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

二、php简单实现栈结构

<?php
class 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());

以上就是教你用php实现栈结构的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:栈
  • 本文转载于:cnblogs,如有侵犯,请联系916990011@qq.com删除
    • 上一篇:解析PHP标准库SPL数据结构
    • 下一篇:分享几种用PHP写99乘法表的方式

    相关文章

    相关视频

    • php全栈是什么
    • php全栈工程师培训
    • 全栈是什么意思?
    • 一起看看 鸿蒙 JavaScript GUI 技术...
    • 教你用php实现栈结构
    • flex布局演示案例
    • 项目属性与order实例1
    • 项目属性与order实例
    • flex容器常用属性详解1
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    文叶儿 | 2021-9-15 01:57:27 | 显示全部楼层
    这个资源都有真不错
    回复

    使用道具 举报

    哲911 | 2022-3-12 04:52:11 | 显示全部楼层
    悟空源码资源不错。粉了
    回复

    使用道具 举报

    搬运工657 | 2022-6-1 08:41:13 | 显示全部楼层
    这个资源都有真不错
    回复

    使用道具 举报

    华为股票卖出矩 | 2022-11-17 15:34:53 | 显示全部楼层
    这个资源都有真不错
    回复

    使用道具 举报

    同感丶 | 2023-6-29 20:34:25 | 显示全部楼层
    没积分哈,谁来帮帮我啊
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则