ホームページ > バックエンド開発 > PHPチュートリアル > PHP チュートリアル: PHP はスタックベースのサフィックス式評価関数を実装します

PHP チュートリアル: PHP はスタックベースのサフィックス式評価関数を実装します

小云云
リリース: 2023-03-17 11:48:01
オリジナル
1696 人が閲覧しました

後置式とは何ですか?後置式は、括弧が含まれていないことを意味し、演算子は 2 つのオペランドの後に配置され、すべての計算は演算子が出現する順序で左から右に厳密に実行されます (演算子の優先順位規則は考慮されなくなりました)。この PHP チュートリアルでは、主に例を使用して、PHP のスタックベースのサフィックス式評価関数を説明します。参考までに皆さんにも共有してください。詳細は以下の通りです:

実装コード:

<?php
class Stack{
  public $stack;
  public $stack_top;
  public function __construct(){
    $this->stack=array();
    $this->stack_top=-1;
  }
  public function push($data){
    $this->stack[]=$data;
    $this->stack_top++;
  }
  public function pop(){
    if(!$this->is_empty())
    {
      $this->stack_top--;
      return array_pop($this->stack);
    }else
    {
      echo "stack is empty";
    }
  }
  public function is_empty(){
    if($this->stack_top==-1)
    return true;
  }
}
$string="1243-*+63/-";
$arrs=str_split($string);
echo var_export($arrs);
$stack=new Stack();
foreach($arrs as $arr){
  switch($arr){
    case "+":$one=$stack->pop();$two=$stack->pop();$temp=$two + $one;$stack->push($temp);break;
    case "-":$one=$stack->pop();$two=$stack->pop();$temp=$two - $one;$stack->push($temp);break;
    case "*":$one=$stack->pop();$two=$stack->pop();$temp=$two * $one;$stack->push($temp);break;
    case "/":$one=$stack->pop();$two=$stack->pop();$temp=$two / $one;$stack->push($temp);break;
    default:$stack->push($arr);
  }
}
echo $stack->pop();
?>
ログイン後にコピー

実行結果:

array (
0 => '1',
1 => '2',
2 = > '4'、
3 => '-'、
6 => '+'、
7 => 、
8 = > '3'、
9 => '/'、
10 => '-'、
)1


この記事を学習すると、接尾辞の表現とその方法を理解できるようになります。 PHP はスタックベースの後置式評価関数を実装しています。このメソッドはプログラマにとって非常に便利です。後で、皆さんに役立つ内容を紹介します。

この記事が PHP プログラミングのすべての人に役立つことを願っています。

関連する推奨事項:

後置式に関する 3 つの推奨記事

php 四則演算: 中置式から後置式への例

四則式から後置式への変換

以上がPHP チュートリアル: PHP はスタックベースのサフィックス式評価関数を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート