修了試験 2021-07-25実施分 基本情報技術者試験 問8
三つのスタックA,B,Cのいずれの初期状態も[1, 2, 3]であるとき,再帰的に定義された関数f( )を呼び出して終了した後のBの状態はどれか。 ここで,スタックが[a1, a2, …, an-1]の状態のときにanをpushした後のスタックの状態は[a1, a2, …, an-1, an]で表す。 f(){ Aが空ならば{ 何もしない。 } そうでない場合{ Aからpopした値をCにpushする。 f()を呼び出す。 Cからpopした値をBにpushする。 } }
正答1
解説
正解はア。 f()はAの要素を3→2→1の順にCへ積み,最後にAが空になった後,Cから1→2→3の順にBへ積み直す。 この結果,Bには元の[1,2,3]の後ろに[1,2,3]が続き,[1,2,3,1,2,3]となる。まとめて解く
修了試験 2021-07-25実施分を通しで解く(80問)→