Heim  >  Artikel  >  Backend-Entwicklung  >  Bringen Sie Ihnen bei, wie Sie eine Stack-Struktur mit PHP implementieren

Bringen Sie Ihnen bei, wie Sie eine Stack-Struktur mit PHP implementieren

藏色散人
藏色散人nach vorne
2020-10-09 15:12:585091Durchsuche

Bringen Sie Ihnen bei, wie Sie eine Stack-Struktur mit PHP implementieren

Empfohlen: „PHP-Video-Tutorial

1. Definition und Wissen von Stack

1. Definition: Stack, auch Stack oder Stack genannt, ist eine spezielle Zeichenfolge in der Informatik. Eine abstrakte Datenform Die Besonderheit besteht darin, dass Daten-Push (Push) und Ausgabedaten-Pop (Pop) nur an einem Ende der verknüpften Liste oder des Arrays (auch bekannt als der oberste Zeiger des Stapels) hinzugefügt werden können als „top“). Darüber hinaus kann der Stapel auch mithilfe von eindimensionalen Arrays und verknüpften Listen implementiert werden.

2. Stapeleigenschaften:

a First in, last out (zuletzt rein, zuerst raus), das heißt, wir können nur Daten an der Spitze des Stapels hinzufügen (drücken). kann den Stapel nur oben platzieren.

b Mit Ausnahme von oben (oben im Stapel) und unten (unten im Stapel) hat jedes andere Element einen Vorgänger und einen Nachfolger.

2. PHP implementiert einfach die Stack-Struktur

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

Das obige ist der detaillierte Inhalt vonBringen Sie Ihnen bei, wie Sie eine Stack-Struktur mit PHP implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:cnblogs.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen