【PHP 实现数据结构】栈

栏目: IT技术 · 发布时间: 4年前

内容简介:之前介绍过 “队列” 是一种特殊的线性表,这里再介绍另外一种特殊的线性表 “栈”栈是一种后入先出的数据结构,它只能允许在列表的一端进行操作。允许操作的一端称为栈顶。栈有两个基本操作,元素压入栈和元素弹出栈,操作示例图。

之前介绍过 “队列” 是一种特殊的线性表,这里再介绍另外一种特殊的线性表 “栈”

什么是栈

栈是一种后入先出的数据结构,它只能允许在列表的一端进行操作。允许操作的一端称为栈顶。

栈有两个基本操作,元素压入栈和元素弹出栈,操作示例图。

【PHP 实现数据结构】栈

代码实现

我们来实现上述两个基本操作,和实际应用中常用的其他几个操作。

  • push 入栈
  • pop 出栈
  • peek 栈顶元素预览
  • length 栈存储的元素个数
  • clear 清空栈
<?php

/**
 * Class Stack
 */
class Stack
{
    protected $top = 0;

    protected $dataStore = [];

    /**
     * 入栈
     * @param $data
     */
    public function push($data)
    {
        $this->dataStore[$this->top++] = $data;
    }

    /**
     * 出栈
     * @return mixed
     */
    public function pop()
    {
        return $this->dataStore[--$this->top];
    }

    /**
     * 预览,查看栈顶元素,但是不弹出
     * @return mixed
     */
    public function peek()
    {
        return $this->dataStore[$this->top - 1];
    }

    /**
     * 栈长度
     * @return int
     */
    public function length() {
        return $this->top;
    }

    /**
     * 清空栈元素
     */
    public function clear() {
        $this->top = 0;
        $this->dataStore = [];
    }
}

示例

$stack = new Stack();
$stack->push(1);
$stack->push(2);
$stack->push(3);
echo "stack length:",$stack->length(),PHP_EOL;
$stack->pop();
$stack->pop();
$stack->push(4);
echo "stack top:",$stack->peek(),PHP_EOL;
$stack->clear();
echo "stack length:",$stack->length(),PHP_EOL;

【PHP 实现数据结构】栈


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

数据挖掘技术

数据挖掘技术

[美]MichaelJ.A.B / 别荣芳、尹静、邓六爱 / 机械工业 / 2006-7 / 49.00元

本书是数据挖掘领域的经典著作,数年来畅销不衰。全书从技术和应用两个方面,全面、系统地介绍了数据挖掘的商业环境、数据挖掘技术及其在商业环境中的应用。自从1997年本书第1版出版以来,数据挖掘界发生了巨大的变化,其中的大部分核心算法仍然保持不变,但是算法嵌入的软件、应用算法的数据库以及用于解决的商业问题都有所演进。第2版展示如何利用基本的数据挖掘方法和技术,解决常见的商业问题。 本书涵盖核心的数......一起来看看 《数据挖掘技术》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具