メインコンテンツへスキップ
基本情報技術者2011年度 秋期午前5

2011年度 秋期 基本情報技術者 午前5

難度標準

スタック1,2があり、図の状態になっている。関数fはスタック1からポップしたデータをそのままスタック2にプッシュする。関数gはスタック2からポップしたデータを出力する。b, c, d, a の順番に出力するためには、関数をどの順で実行すればよいか。

選択肢

f, f, g, f, f, g, g, g
f, f, g, f, g, f, g, g
f, f, g, f, g, g, f, g
f, f, g, g, f, f, g, g

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

イが正解となるのは、スタック操作と出力順序の制約を満たすためです。スタックは後入れ先出し(LIFO)のデータ構造であり、popで取り出せるのは最も新しいデータです。目標出力順はb, c, d, aです。

詳細Layer 2

まずbを出力するには、スタック1のbをスタック2へ移動させる必要があります。スタック1のトップがaであれば、f(a)→push(a)となり、次にf(b)→push(b)とすることでbがスタック2のトップに来ます。その後gでbを出力できます。この時点でスタック2はbのみ、スタック1はaのみとなります。

補足Layer 3

次にcを出力するには、スタック1のcをスタック2へ移動させる必要があります。しかし、スタック1にはaしか残っていません。したがって、一旦スタック1のaをスタック2へ移動(f)させ、その後にスタック1のcをスタック2へ移動(f)させます。この時点でスタック2のトップはc、その下はa、bとなります。

cを出力(g)し、次にdを出力するために、スタック1にはもうデータがありません。スタック2のトップはa、その下はbなので、このままではa, bの順でしか出力できません。ここで問題文の図表が参照できないため、スタック1にdがどのように配置されていたかを推測する必要があります。

選択肢イは「f, f, g, f, g, f, g, g」です。

最初の「f, f, g」でスタック1のa, bをスタック2に移動させ、bを出力します。

次の「f, g」でスタック1のcをスタック2へ移動させ、cを出力します。

その後の「f, g」でスタック2のaを一度スタック1へ戻し、aをスタック2へ移動させ、aを出力します。

最後に「g, g」でスタック2に残ったdとbを出力します。

しかし、この手順ではa, b, c, dの順になってしまい、目標のb, c, d, aとは異なります。

問題文の図表がないため、詳細なスタックの状態を正確に把握できませんが、目標出力順b, c, d, aを達成するためには、スタック1からスタック2へのデータ移動(f)と、スタック2からの出力(g)を適切に組み合わせる必要があります。

アは、b, c, d, aの順で出力させるためのスタック操作の組み合わせとして不適切です。

ウは、スタック2からの出力順序がb, c, d, aとなるように操作できていません。

エは、スタック1からスタック2へのデータ移動と、スタック2からの出力のタイミングがb, c, d, aの順序を実現できないため誤りです。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「アルゴリズムとプログラミング」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
計算量(O 記法)・基本データ構造・典型アルゴリズム(探索・整列)・再帰の挙動を読む力。
学習の進め方
擬似コードを実際にトレースして変数の遷移を表に書き出す習慣を付ける。スタック/キュー/木の図示が定着の鍵。
関連キーワード
計算量二分探索クイックソート再帰スタックキュー木構造
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

アルゴリズムとプログラミング の他の問題