FE Study
FE Study メニュー

学習記録はこのブラウザー内に保存されます。

ホーム問題を解く
ログイン不要・無料で学習

ONE QUESTION, ONE STEP

スタックを学ぼう

選んで、確かめて、理解する。焦らず進めましょう。

QUESTION 76

後置記法の式をスタックで評価する。数値はpushし、演算子が来たら右辺、左辺の順にpopして「左辺 演算子 右辺」を計算し、その結果をpushする。スタックは初め空であり、次のトークンを左から処理する。最後にスタックへ残る値はいくつか。 20, 6, 2, −, ÷ ÷は整数除算であり、ここでは割り切れる。

出典:本サイト オリジナル教材(2026年)

本サイトで独自に作成。IPAの試験問題からの転載ではありません。

公開日:

解答を一つ選んでください

選択肢を選んで、答え合わせをしましょう。

回答せずに正解・解説を確認する

正解:ア 5

この表示だけでは、回答数や正答率は変わりません。

解説

20、6、2を積むと、スタックは底から{20, 6, 2}です。−では右辺2、左辺6を取り出して6 − 2 = 4を積み、{20, 4}となります。÷では右辺4、左辺20を取り出し、20 ÷ 4 = 5を積みます。

ア

内側の6 − 2を先に計算し、その結果4で20を割るので5です。

イ

減算の左右を逆にして2 − 6 = −4とすると−5になりますが、指定されたpop順に反します。

ウ

トークンを後置記法で処理せず、(20 − 6) ÷ 2という別の式へ読み替えると7になります。

エ

最後の2だけを除数にしていますが、2は先に減算で使われています。

関連知識

スタックは最後に入れた値を最初に取り出すLIFO構造です。加算や乗算は左右を逆にしても同じ結果ですが、減算や除算は変わります。演算ごとに二つ取り出して一つ戻すため、スタックの要素数は一つ減ります。

間違えやすいポイント

最初にpopした値を左辺にしないこと。この問題では最初が右辺です。加算だけの例では誤りに気付きにくいので、減算や除算で確かめます。

覚え方

先に出た値が右、次に出た値が左。

実務での意味

式の評価器や構文解析を学ぶ際、スタックの底と先頭を明記した表を作り、各トークン後の状態を記録します。

解説:本サイト編集部によるオリジナル文章

この問題の前後に、プログラミングの基礎知識ガイドで、 仕組み・比較・解き方を確認できます。 この問題の誤りを報告する(GitHub)。問題IDとURLを入力した下書きが開きます。自動投稿は行いません。 投稿は公開されるため、氏名・住所・メールアドレス・学習記録は記入しないでください。 詳しくはお問い合わせ窓口をご覧ください。