Reverse Polish Notation

ぎゃくポーランド記法きほう(RPN - Reverse Polish Notation)は数学すうがくしき表記ひょうき方法ほうほうで、後置こうち記法きほうともばれる。

Postfix Notation (後置記法)

演算子えんざんし被演算子ひえんざんしあと位置いちする。

7 3 + 4 2   5 / 7\ 3\ +\ 4\ 2\ -\ *\ 5\ /

Infix Notation (中置記法)

演算子えんざんし被演算子ひえんざんしあいだ位置いちする、人間にんげんもっともよく使つか表記法ひょうきほう

((7+3)(42))/5 ((7 + 3) * (4 - 2)) / 5

Prefix Notation (前置記法)

演算子えんざんし被演算子ひえんざんしまえ位置いちする、ポーランド記法きほうともばれる。

/  + 7 3  4 2 5 /\ *\ +\ 7\ 3\ -\ 4\ 2\ 5

Comparison

表記法ひょうきほうれい特徴とくちょう
Infix (中置ちゅうち)(7 + 3) * (4 - 2) / 5優先順位ゆうせんじゅんい定義ていぎするために括弧かっこ必要ひつよう
Postfix (後置こうち/RPN)7 3 + 4 2 - * 5 /括弧かっこ不要ふよう、スタック計算けいさんてきしている
Prefix (前置ぜんち)/ * + 7 3 - 4 2 5括弧かっこ不要ふようみぎからひだり計算けいさん

Stack-based Evaluation

RPNはスタックを使つかって計算けいさんできる:

  1. しきひだりからみぎにスキャン
  2. 被演算子ひえんざんし遭遇そうぐうしたらスタックにPush
  3. 演算子えんざんし遭遇そうぐうしたら2つの被演算子ひえんざんしをPopして計算けいさん結果けっかをスタックにPush
  4. 最後さいごにスタックにのこったあたい結果けっか