平成28年度秋期 応用情報技術者試験 午前 問3
逆ポーランド表記法で表された式を評価する場合,途中の結果を格納するためのスタックを用意し,式の項や演算子を左から右に順に入力し処理する。スタックが図の状態のとき,入力が演算子となった。このときに行われる演算はどれか。ここで,演算は中置表記法で記述するものとする。

- ア A 演算子 B
- イ B 演算子 A
- ウ C 演算子 D
- エ D 演算子 C
解答・解説を見る
正解:ウ
AI解説
逆ポーランド表記法の評価では、演算子が入力されたとき、スタックから2つの値をポップし、「後にポップした値 演算子 先にポップした値」の順で演算する。図のスタックは上からD、C、B、Aであり、最初にポップされるDが右オペランド、次にポップされるCが左オペランドとなるため、行われる演算はC 演算子 Dである。 ア: AとBはスタックの底の方にあり、今回の演算では取り出されない。 イ: 同じくA、Bは取り出されない上、オペランドの順序も演算対象ではない。 ウ: 正しい。トップのDと次のCがポップされ、先に積まれていたCが左オペランドとなってC 演算子 Dが実行される。 エ: D 演算子 Cはオペランドの順序が逆である。減算や除算では順序が結果に影響するため、ポップ順と演算順の関係を正しく理解する必要がある。 💡 「先にポップした方が右オペランド」が鉄則。A−Bを逆ポーランドにするとAB−で、Bが後から積まれて先にポップされることから確認できる。
出典:平成28年度 秋期 応用情報技術者試験 午前 問3 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。