ホームページ >バックエンド開発 >PHPチュートリアル >PHPで実装したスタックデータ構造の例 [スタックへのプッシュ、スタックからのポップ、スタックのトラバース]_phpスキル

PHPで実装したスタックデータ構造の例 [スタックへのプッシュ、スタックからのポップ、スタックのトラバース]_phpスキル

韦小宝
韦小宝オリジナル
2017-12-15 10:20:131627ブラウズ

この記事では、主に PHP によって実装されたスタック データ構造を紹介し、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

これがこの内容のすべてですこの記事が皆さんのお役に立てれば幸いです! !

関連する推奨事項:

PHPの単一ファイルおよび複数ファイルのアップロードの分析例

phpのクラスとオブジェクトの詳細な例

phpによって生成される低品質のサムネイルの解決策


以上がPHPで実装したスタックデータ構造の例 [スタックへのプッシュ、スタックからのポップ、スタックのトラバース]_phpスキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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