平成28年度 秋期 応用情報技術者試験 午前 問3
テクノロジ/基礎理論逆ポーランド表記法で表された式を評価する場合,途中の結果を格納するためのスタックを用意し,式の項や演算子を左から右に順に入力し処理する。スタックが図の状態のとき,入力が演算子となった。このときに行われる演算はどれか。ここで,演算は中置表記法で記述するものとする。 スタックの状態(上から下へ):D,C,B,A
出典:平成28年度 秋期 応用情報技術者試験 午前 問3
- アA 演算子 B
- イB 演算子 A
- ウC 演算子 D
- エD 演算子 C
正解:ウ
解説
逆ポーランド表記法をスタックで評価する際,演算子が入力されるとスタックの上位2要素をポップして演算を行い,結果を再びスタックに積みます。図の状態は上からD,C,B,Aの順に積まれているので,先にポップされる(上にある)Dが右側の被演算数,次にポップされる(下にある)Cが左側の被演算数となり,中置表記ではC 演算子 Dとなります。
選択肢ごとの解説
- ア誤り。AとBはスタックの下側にあり,今回ポップされる対象ではありません。
- イ誤り。左右の被演算数の順序が逆で,中置表記ではB 演算子 Aではなく先にポップされた側を右に置く必要があります。
- ウ正しい。上位2要素であるD(先にポップ,右側の被演算数)とC(次にポップ,左側の被演算数)を使い,中置表記でC 演算子 Dとなります。
- エ誤り。中置表記における左右の被演算数の順序が逆になっています。先にポップされるDは右側の被演算数になります。