基本情報技術者 88

このエントリーをはてなブックマークに追加
909名無し検定1級さん
問12  A,B,C,D の順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。

ア A,D,B,C
イ B,D,A,C
ウ C,B,D,A
エ D,C,A,B

この問題どうやって解くんでしょうか?
スタックも理解してるはずだけどこの問題文理解不能です。
910無(ry:05/03/02 17:02:36
>>909


実際に絵を書けば簡単に理解できる
911907:05/03/02 17:03:42
>>908
レスどうもです。
大学の頃、FORTRANをやったことがあるんだけど、今からJava、間に合うだろうか?
912名無し検定1級さん:05/03/02 17:14:12
>>910
いや・・・問題文の言ってる意味が分からないので書きようが無くて・・・
913名無し検定1級さん:05/03/02 17:24:58
>>909
1つの新聞入れしか使えねと考えるんず

んで、入れる順番ばA→B→C→Dと決まっでるんだげど
取り出すタイミングば自由だっていうこどなんす

Aを入れた後にすぐAば取り出してもいいし
ABCD全部入れた後にDを取り出してもいい
けんどABCDを全部入れた後に
すんぐBを取り出すというのは無理な話だず
ABCDが全部入った状態でBを取り出すには
Dをまず取り、んでCを取り、という順序を守らねばならねっす
それがスタックの道理というもんす

アは、Aを入れ、「Aを取り出す」、Bを入れ、Cを入れ、Dを入れ、「Dを取り出す」
次ばCしか取り出せねえんす
ずるっこしてBば取り出すことはなんね
んだから、アの順番では出力ば無理なこってす

イは、Aを入れ、Bを入れ、「Bを取り出す」、Cを入れ、Dを入れ、「Dを取り出す」
その次に取り出せるのはCだけなんす
だからアウトなんず

ウは、Aを入れ、Bを入れ、Cを入れ、「Cを取り出す」、「Bを取り出す」、Dを入れ、
「Dを取り出す」、「Aを取り出す」で、うまくいくはずっす

エは、Aを入れ、Bを入れ、Cを入れ、Dを入れ、「Dを取り出し」、「Cを取り出し」
ここでアウトず