こんにちは、おゆかよです。
この記事では「逆ポーランド表記法(後置記法)」の計算方法が学べます。スタックの使い方もあわせて確認しましょう!^^
前回の記事:
試験の問題と解答
出典: 応用情報技術者試験 令和5年度秋期試験 午前問題 問3
問題:
逆ポーランド表記法(後置記法)で表現されている式 ABCD−×+
において、
A=16、B=8、C=4、D=2 のときの演算結果はどれか。
選択肢:
ア:32 イ:46 ウ:48 エ:94
正解:ア
逆ポーランド表記法とは

わたし
博士〜!逆ポーランド表記って名前だけでもう難しそうで…。問3が「ABCD−×+」ってなってて、意味がわかりません!

博士
大丈夫だよ、おゆかよちゃん。逆ポーランド表記は「演算子があとに来る」書き方なんだ。スタックを使えば簡単に解けるよ。

わたし
スタックって、後から入れたものを先に取り出すやつですよね?

博士
そうそう、LIFO(Last In First Out)構造だね。じゃあ、実際にこの式「ABCD−×+」を1個ずつ処理してみようか。
ステップ:
- A=16 → スタックに[16]
- B=8 → スタックに[16, 8]
- C=4 → スタックに[16, 8, 4]
- D=2 → スタックに[16, 8, 4, 2]
次は演算子だよ。

博士
最初の演算子「−」は、スタックから2つ取り出して、4−2=2
→ スタックに[16, 8, 2]
次に「×」→ 8×2=16
→ スタックに[16, 16]
最後に「+」→ 16+16=32!

わたし
ほんとだ!演算子が出てきたら、その都度スタックから2個取り出して、計算して戻すんですね!

博士
その通り!だから答えはア:32なんだよ。
最後にもう一度、問題と解答を見てみよう
出典: 応用情報技術者試験 令和5年度秋期試験 午前問題 問3
問題:
逆ポーランド表記法(後置記法)で表現されている式 ABCD−×+
において、
A=16、B=8、C=4、D=2 のときの演算結果はどれか。
選択肢:
ア:32 イ:46 ウ:48 エ:94
正解:ア
まとめ
- 逆ポーランド表記(後置記法)は「演算子があと」に来る
- スタック構造で1つずつ処理していけばOK
- 最後まで順に処理していけば、ちゃんと答えが出せる!
次の記事:
コメント