Maison  >  Article  >  développement back-end  >  Apprenez à implémenter la structure de pile en utilisant PHP

Apprenez à implémenter la structure de pile en utilisant PHP

藏色散人
藏色散人avant
2020-10-09 15:12:585091parcourir

Apprenez à implémenter la structure de pile en utilisant PHP

Recommandé : "Tutoriel vidéo PHP"

1. Définition et connaissances de la pile

1. Définition : La pile, également connue sous le nom de pile ou pile, est un type de données abstraites en série spécial en informatique. La particularité est qu'elle n'est autorisée qu'à une extrémité de la liste chaînée ou du tableau (le haut). du pointeur de pile, également connu sous le nom de "top") ajoute un push de données (push) et un pop de données de sortie (pile pop). De plus, la pile peut également être implémentée à l'aide de tableaux unidimensionnels et de listes chaînées.

2. Caractéristiques de la pile :

a. Premier entré, dernier sorti (dernier entré, premier sorti), c'est-à-dire qu'on ne peut que pousser (pousser) pour ajouter des données en haut. de la pile, et nous ne pouvons que Pop supprimer les données en haut de la pile

b. À l'exception du haut (haut de la pile) et de la base (bas de la pile), tous les autres éléments de la pile ont. un prédécesseur et un successeur

2. PHP implémente simplement la structure de pile

<?php
class HeapStack{
    private $stackArr = array();
    private $stackMaxTop = 10; // 栈顶最大值(用于控制栈长度,是否栈满)
    private $top = -1; // 栈顶(会随着push或pop的操作而变化)
    private $out;

    /**
     * 入栈
     *
     */
    public function pushValue($value=&#39;&#39;)
    {
        if(empty($value))
            return &#39;压入的值不能为空&#39;;

        if($this->top == $this->stackMaxTop)
            return &#39;栈内已满&#39;;
        array_push($this->stackArr, $value);
        ++$this->top;
        return &#39;入栈成功,栈顶值:&#39;.$this->top;
    }

    /**
     * 出栈
     *
     */
    public function popValue()
    {
        if($this->top == -1)
            return &#39;栈内没有数据&#39;;

        $this->out = array_pop($this->stackArr);
        --$this->top;
        return &#39;出栈成功,当前栈顶值:&#39;.$this->top.&#39;出栈值:&#39;.$this->out;
    }

    /**
     * 获取栈内信息
     */
    public function getSatck()
    {
        return $this->stackArr;
    }

    public function __destruct()
    {
        echo &#39;over &#39;;
    }
}

$stack = new HeapStack();
echo $stack->pushValue(&#39;stackValue&#39;)."\n";
echo $stack->pushValue(&#39;stackValue2&#39;)."\n";
var_dump($stack->getSatck());
echo $stack->popValue()."\n";
var_dump($stack->getSatck());
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer