令和7年度 春期 ITストラテジスト試験 システムアーキテクト試験 ネットワークスペシャリスト試験 ITサービスマネージャ試験 情報処理安全確保支援士試験 午前Ⅰ 問題【共通】 問3
A, B, Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,データの出力順序は何通りあるか。

図の説明テキスト
スタックの動作を示す模式図。中央に上部が開いた縦長の長方形があり、中に縦書きで「スタック」と記されている。長方形の右側から「A, B, C」とラベルされた矢印がスタックの開口部に向かって入り込むように描かれている。また、スタック内部から上向きに出て左へ向かう矢印が描かれている。
解答・解説
正解: ウ. 5
スタックは最後に入力されたデータが最初に取り出されるLIFO(後入れ先出し:Last In First Out)形式のデータ構造です。
入力データがA、B、Cの順であるため、スタックへの挿入と取出しの組み合わせによって出力される順序を考えます。出力可能な順序は以下の5通りです。
- Aを挿入→Aを取出し→Bを挿入→Bを取出し→Cを挿入→Cを取出し (出力順:A, B, C)
- Aを挿入→Aを取出し→Bを挿入→Cを挿入→Cを取出し→Bを取出し (出力順:A, C, B)
- Aを挿入→Bを挿入→Bを取出し→Aを取出し→Cを挿入→Cを取出し (出力順:B, A, C)
- Aを挿入→Bを挿入→Bを取出し→Cを挿入→Cを取出し→Aを取出し (出力順:B, C, A)
- Aを挿入→Bを挿入→Cを挿入→Cを取出し→Bを取出し→Aを取出し (出力順:C, B, A)
なお、3つのデータの並び替え(順列)は全部で 通りありますが、「C, A, B」という順序だけは出力不可能です。なぜなら、最初に取り出されたデータがCである場合、スタック内には下からA、Bの順で積まれている状態であり、次に取り出せるのは必ず一番上のBとなるためです。
したがって、データの出力順序は5通りとなります。