2012年3月16日金曜日

=== 平成23年秋 問5 ===


平成23年秋目次  前の問題  次の問題

問5

スタック 1,2 があり,図の状態になっている。関数 f はスタック 1 からポップしたデータを そのままスタック 2 にプッシュする。 関数 g はスタック 2 からポップしたデータを出力する。b,c,d ,a の順番に出力するためには , 関数をどの順で実行すればよいか。




ア f, f, g, f, f, g, g, g       イ f, f, g, f, g, f, g, g
ウ f, f, g, f, g, g, f, g       エ f, f, g, g, f, f, g, g


解説

ffgまではすべての選択肢で同じであり、次のようになる。
・1番目、2番目のffでスタック2にはaがプッシュされ、次にbがプッシュされる。
・3番目にgが実行されスタック2からbがポップされ出力される。
次はcを出力したいので、もし、gが実行されるとスタック2からaがポップされ出力されてしまうので、fのはずであ る。
・4番目にfが実行されるとスタック1はdがはいっているだけ、2は下からa、cがはいっている。
次はcを出力したいのでこの状態でスタック2からポップすればよいので、
・5番目にgを実行すればよい。
次はdを出力したいのでgはまだ行えないから、
・6番目にはfを行う。
今スタック2には、下からa、dが入っている。この状態で2回ポップして出力すればよいので
・7番目、8番目にggとなる。

よって答えは、ffgfgfgg



0 件のコメント:

コメントを投稿