>  기사  >  백엔드 개발  >  PHP 튜토리얼: PHP는 스택 기반 접미사 표현식 평가 함수를 구현합니다.

PHP 튜토리얼: PHP는 스택 기반 접미사 표현식 평가 함수를 구현합니다.

小云云
小云云원래의
2017-11-13 09:48:371639검색

접미사 표현이란 무엇인가요? 후위 표현식은 괄호를 포함하지 않으며 연산자가 두 피연산자 뒤에 배치됨을 의미합니다. 모든 계산은 연산자가 나타나는 순서대로 왼쪽에서 오른쪽으로 엄격하게 수행됩니다(연산자의 우선순위 규칙은 더 이상 고려되지 않습니다). 이 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 => '3',
5 => '*',
7 => ,
8 = > '3',
9 => '/',
10 => '-',
)1


이 글을 공부한 후에는 모두 접미사 표현을 이해해야 합니다. PHP는 스택 기반 후위 표현식 평가 기능을 구현합니다. 이 방법은 프로그래머에게 매우 유용합니다.

이 기사가 PHP 프로그래밍에 종사하는 모든 사람에게 도움이 되기를 바랍니다.

관련 추천:

후위 표현식에 대한 추천 기사 3개

php 4개의 산술 연산: 중위 표현식을 후위 표현식으로의 예

4개의 산술 표현식을 후위 표현식으로 변환

위 내용은 PHP 튜토리얼: PHP는 스택 기반 접미사 표현식 평가 함수를 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.