テクノロジ系
春期
基本情報技術者 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]となる。