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

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

藏色散人
リリース: 2023-04-09 15:48:01
転載
5189 人が閲覧しました

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート