問5 スタックで作れる出力順序

応用情報​技術者試験 令和7年度 春期 午前、全80問のうちの問5。

出典:令和7年度 春期 応用情報技術者試験 午前 問5(スタックの図は、言葉に書き起こした)

A,B,C の順序で入力されるデータがある。各データについてスタックへの挿入と取出しを 1 回ずつ行うことができる場合,データの出力順序は何通りあるか。

図 スタックへの入出力
  1. データ A,B,C は右から,この順にスタックの上の口へ入る
  2. スタック (入口と出口は同じ上の口)
  3. 取り出したデータは上の口から左へ出力される
  1. ア3
  2. イ4
  3. ウ5
  4. エ6
答えと解説を開く

正解はウです。

スタックは、最後に入れた物を最初に取り出す入れ物です。A,B,C を順に入れながら、好きな時点で上から取り出します。作れる並びを数えます。A を入れてすぐ出すと、残りの B,C で 2 通り (A,B,C と A,C,B) です。A を入れたまま B を入れて B を出すと、B,A,C と B,C,A の 2 通りです。A,B,C を全部入れてから出すと C,B,A の 1 通りです。合計で 5 通りです。C を最初に出すときは、A と B がスタックに残り、B が上にあるので、C,A,B は作れません。正解はウです。

ほかの選択肢が違う理由

  • ア3 通りは、作れる並びを数え漏らしています。A を最初に出す並びだけで 2 通り、B を最初に出す並びで 2 通りあります。
  • イ4 通りは、B,C,A や A,C,B など、途中で出し入れを混ぜる並びを 1 つ数え漏らしています。
  • エ6 通りは 3 個の並べ方のすべてです。C,A,B は、C の下に B が残っているので A を先に出せず、作れません。

仕組み

スタックは、皿を積み重ねる形に似ています。上に積んだ皿から順に取るので、後に入れた物が先に出ます (後入れ先出し、LIFO)。

n 個のデータをスタックに通して作れる並びの数は、1,2,5,1⁠4,4⁠2 と増えます。3 個なら 5 通りで、ちょうど 1 つだけ作れない並びがあります。

この問に出る言葉