以下問題です。
三つのスタック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する。
}
}
解答だと、
A[] B[1,2,3,1,2,3] C[1,2,3]になります。
私は、
F()を再帰的に呼び出し、Aが空になった段階で、Cからpopした値をBに1度だけpushして、処理を終了しました。
Aが空になった時点で、F()の呼び出しは、二度としない認識ですが、誤っているにでしょうか。
![guest](/img/icon/icnUserSample.jpg)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/19 10:18
2020/07/19 10:20
2020/07/19 10:22
2020/07/19 10:26
2020/07/19 10:35