ホームページ >バックエンド開発 >PHPチュートリアル >PHPで実装されるスタックのデータ構造例の説明

PHPで実装されるスタックのデータ構造例の説明

jacklove
jackloveオリジナル
2018-07-06 17:37:152023ブラウズ

この記事では、主に PHP で実装されるスタックのデータ構造を紹介し、PHP 定義スタックとそれに関連するスタックのプッシュ、ポップ、トラバースなどの操作スキルをサンプル形式で分析します。

# この記事の例では、PHP によって実装されたスタック データ構造について説明します。参考のために皆さんと共有してください。詳細は次のとおりです。

PHP オブジェクト指向の考え方を使用して、スタックの属性には、トップ、最大ストレージ数、ストレージ コンテナーが含まれます (ここでは PHP 配列が使用されます)。

コードは次のとおりです: スタックをプッシュ、ポップ、およびトラバースするいくつかのメソッドが実装されています:

<?php
class Stack{
  const MAXSIZE = 4;// 栈最大容量
  private $top = -1;
  private $stack = array();// 利用数组存储数据
  public function __construct(){
    $this->stack = array();
  }
  // 入栈
  public function push($ele){
    if ($this->top >= self::MAXSIZE-1){
      echo &#39;stack is full...&#39;;
      return false;
    }
    $this->stack[++$this->top] = $ele;// 此处必须是++i,先计算再使用
  }
  // 出栈,返回出栈元素
  public function pop(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    $ele = $this->stack[$this->top];
    unset($this->stack[$this->top--]);// 此处必须是i--,先使用再计算(注意出栈和入栈的区别)
    return $ele;
  }
  // 遍历栈
  public function show(){
    if ($this->top == -1){
      echo &#39;stack is empty...&#39;;
      return false;
    }
    for($i=$this->top; $i>-1; $i--){
      echo $this->stack[$i].&#39;<br/>&#39;;
    }
  }
}
$stack = new Stack;
$stack->push(1);
$stack->push(2);
$stack->push(3);
$stack->push(4);
//print_r($stack);
$stack->show();
$a = $stack->pop();
$a = $stack->pop();
$a = $stack->pop();
$stack->show();

実行結果:

4
3
2
1
1

#興味があるかもしれない記事:

laravel スキル クエリ ビルダー オーバーレイ チェーン呼び出しメソッドの説明


フィボナッチ数列を実装するための PHP コードの共有


PHP は二分法に基づく配列検索関数を実装します 例の説明

# ########################################

以上がPHPで実装されるスタックのデータ構造例の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHP変数関数次の記事:PHP変数関数