本文へスキップ
Certia
テクノロジ系
春期

基本情報技術者 2019年 春期 問6

6 / 80

三つのスタック A,B,Cのいずれの初期状態も[1,2,3]であるとき、再帰的に定義 された関数f()を呼び出して終了した後のBの状態はどれか。ここで、スタックが 【as, @2, , 6n-]の状態のときにauをpushした後のスタックの状態は[a1, 023,4n-1, ailで表す。 f(){ Aが空ならば{ 何もしない。 } そうでない場合{ Aから popした値をCに pushする。 f()を呼び出す。 Cからpopした値をBにpushする。 } }.

正解と解説

表示する
正解 ア

[1,2,3,1,2,3]

関数fはAが空になるまで再帰し、Aからpopした値をCに積み、復帰時にCからpopしてBに積む。Aは[1,2,3](先頭が1)からpopで1,2,3の順にCへ、Aが空になり戻る際CからpopでCの先頭から順にBへ移す。結果、初期のB[1,2,3]の上に元Aの要素が積まれ、Bは[1,2,3,1,2,3]となる。

AI に聞く

AI のボタンを押すと、問題文と解答を入れたプロンプトをコピーしてから各サービスを開きます。入力欄に自動で入らない場合は貼り付けてください。