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

藏色散人
Libérer: 2023-04-09 15:48:01
avant
5172 Les gens l'ont consulté

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());
Copier après la connexion
.

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!

Étiquettes associées:
source:cnblogs.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal