Reverse Polish Notation
逆ポーランド記法(RPN - Reverse Polish Notation)は数学式の表記方法で、後置記法とも呼ばれる。
Postfix Notation (後置記法)
演算子が被演算子の後に位置する。
Infix Notation (中置記法)
演算子が被演算子の間に位置する、人間が最もよく使う表記法。
Prefix Notation (前置記法)
演算子が被演算子の前に位置する、ポーランド記法とも呼ばれる。
Comparison
| 表記法 | 例 | 特徴 |
|---|---|---|
| Infix (中置) | (7 + 3) * (4 - 2) / 5 | 優先順位を定義するために括弧が必要 |
| Postfix (後置/RPN) | 7 3 + 4 2 - * 5 / | 括弧不要、スタック計算に適している |
| Prefix (前置) | / * + 7 3 - 4 2 5 | 括弧不要、右から左に計算 |
Stack-based Evaluation
RPNはスタックを使って計算できる:
- 式を左から右にスキャン
- 被演算子に遭遇したらスタックにPush
- 演算子に遭遇したら2つの被演算子をPopして計算、結果をスタックにPush
- 最後にスタックに残った値が結果