0
0

逆ポーランド記法

Posted at

アルゴリズムの演習問題をやっていたら「逆ポーランド記法」という初めて聞く言葉が出てきたので、まとめました。

そもそも逆ポーランド記法とは?

  • 演算子を被演算子の後にする。(後置記法とも言う。(?))
  • その他の記法としては、演算子を被演算子の中間に記述する中間記法、前に記述する前置記法(ポーランド記法)がある。

例えば、

3 + 4

これは中間に「+」を置いているから、中間記法、というわけですね。
逆ポーランド記法は後ろに演算子を置くので、

3 4 +

と書きます。(34+〇〇に見えるから慣れないとややこしい、、、)

どういうシーンで「逆ポーランド記法」が出てくる?

一言で言うと、電卓を実装する場合は、逆ポーランド記法を使って演算するようです。
逆ポーランド記法はコンピュータ処理に適した記法らしいです。
実現方法は、「スタック」と呼ばれるデータ構造を使用します。
手順は以下です。

① 式からトークンを1つ取り出してtとする
② もし、tが数値であれば、スタックに積む
③ もし、tが演算子であれば、スタックから3つ値を下ろし、計算を行って、スタックに乗せる
④ 式が空になるまで上記手順を繰り返す
⑤ スタックから値を1つおろし、それを式の答えとする

おまけ:スタックとは

スタックは、後に入れたものが先に出る構造をしていて、キューの逆です。
説明は下記サイトに任せます。
「スタックとは|「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典」
https://wa3.i-3-i.info/word14717.html

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0