三つのスタックA, B, Cのいずれの初期状態も[1, 2, 3]であるとき、再帰的に定義された関数f()を呼び出して終了した後のBの状態はどれか。ここで、スタックが[a1, a2, …, a(n-1)]の状態のときにanをpushした後のスタックの状態は[a1, a2, …, a(n-1), an]で表す。 f(){ Aが空ならば{ 何もしない。 } そうでない場合{ Aからpopした値をCにpushする。 f()を呼び出す。 Cからpopした値をBにpushする。 } }
スタックを2回経由すると順序は元に戻る
選択肢
- ア[1, 2, 3, 1, 2, 3]
- イ[1, 2, 3, 3, 2, 1]
- ウ[3, 2, 1, 1, 2, 3]
- エ[3, 2, 1, 3, 2, 1]
正解と解説
正解:ア [1, 2, 3, 1, 2, 3]
この関数はAから取り出した値を一度Cに積み、再帰から戻る際にCから取り出してBへ移す。Aはスタックなので取り出す順は3,2,1で、Cには3,2,1の順に積まれる。再帰の最も深い所から戻りながらCをpopすると1,2,3の順に出てくるため、Bには元の[1,2,3]の上に1,2,3が積まれる。
選択肢ごとの解説
- アCを経由して2回反転するため元の順序に戻り、初期状態の上に1,2,3が積まれる。
- イBの初期状態[1,2,3]は残るが、追加分の順序が逆で、反転が1回だけの場合の答え。
- ウBの初期状態が消えて反転しているが、初期状態は残るので誤り。
- エ初期状態の扱いも追加分の順序も誤っている。
同じ分野の他の問題
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2026年度 公開問題 科目B 問4
- 次のプログラム中の a と b に入れる正しい答えの組合せを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。…2025年度 公開問題 科目B 問3
- 図の木構造は2分探索木である。a〜gの値の大小関係として,適切なものはどれか。ここで,a〜gの値は重複しないものとする。2025年度 公開問題 科目A 問3
- 次のプログラム中の に入れる正しい答えを、解答群の中から選べ。ここで、配列の要素番号は1から始まる。 図1に示すグラフの…2024年度 公開問題 科目B 問3
- 双方向のポインタをもつリスト構造のデータを表に示す。この表において新たな社員Gを社員Aと社員Kの間に追加する。追加後の表…2023年度 公開問題 科目A 問2
最終更新:2026-08-25/解説・選択肢ごとの解説は資格暗記が独自に作成しています。問題文と選択肢の出典は上記のとおりです。