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

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

小云云
小云云オリジナル
2017-11-13 09:48:371649ブラウズ

後置式とは何ですか?後置式は、括弧が含まれていないことを意味し、演算子は 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 サイトの他の関連記事を参照してください。

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