ホームページ  >  記事  >  バックエンド開発  >  PHPを使用してスタック構造を実装する方法を教えます

PHPを使用してスタック構造を実装する方法を教えます

藏色散人
藏色散人転載
2020-10-09 15:12:585091ブラウズ

PHPを使用してスタック構造を実装する方法を教えます

推奨: 「PHP ビデオ チュートリアル

1. スタックの定義と知識

1. 定義: スタック (スタックまたはスタックとも呼ばれる) は、コンピューター サイエンスにおける特殊なシリアル抽象データ型です。特別なことは、リンクされたリストまたは配列の一端 (先頭) でのみ許可されることです。スタックのポインター (「トップ」とも呼ばれます) は、データのプッシュ (プッシュ) と出力データのポップ (ポップ スタック) を追加します。さらに、スタックは 1 次元配列とリンク リストを使用して実装することもできます。

2. スタックの特性:

a. 先入れ後出し (後入れ先出し)、つまり、スタックの先頭でプッシュすることによってのみデータを追加できます。スタックの最上位にあるデータを削除するには、Pop のみを実行できます;

b. トップ (スタックの最上位) とベース (スタックの最下位) を除き、スタック内の他のすべての要素には、先行者と後続者;

2. php

<?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());
でのスタック構造の簡単な実装

以上がPHPを使用してスタック構造を実装する方法を教えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。