ホームページ >バックエンド開発 >PHPチュートリアル >PHP がスタック データ構造の例を実装する方法についての包括的かつ詳細な説明

PHP がスタック データ構造の例を実装する方法についての包括的かつ詳細な説明

小云云
小云云オリジナル
2017-12-13 09:58:161680ブラウズ

この記事では、主に 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
関連する推奨事項:
php スタック データ構造とブラケット マッチング アルゴリズムを実装する方法の詳細なコード例

配列を使用して PHP でスタック データ構造を実装するコード

php 線形テーブルのプッシュとポップの例分析_PHP チュートリアル

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

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