解説わからなすぎです

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
うっさんさん  
(No.1)
A,B,C,Dの順に到着するデータに対して,一つのスタックだけを用いて出力可能なデータ列はどれか。
平成29年秋期

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


上記の問題なのですが、解説を見ても全く理解できませんでした。
心優しい方がいましたら、わかりやすく説明していただけないでしょうか?
よろしうお願いします。
2018.09.26 15:56
むぎちょんさん 
(No.2)
問題文が見つからないので合っているか分かりませんが、考え方の話なので

スタックとは、後から入れたものは先に出しなさいよというデータ構造で、
拳銃のマガジンみたいなものかな?最後に込めた玉が最初に出ますよね?
マガジンに詰める(入力)という操作がPUSHで鉄砲を撃つ操作(出力)がPOPと言えば良いかな。。

A->B->C->D->の順に玉が拳銃のマガジンに装填するとして、打つタイミングは別にDを
入れてからでなくても、Aを入れた後に玉を打っても良いわけです。

しかし。ABCという順に玉が入っている場合、Cが一番新しく入った玉なのに、
Bから打つなんてことは出来ないですよね?
■C■ -->コイツを先に出さないとBが出せない
■B■ <-コイツはCが出ていかないと出せない
■A■ <-こいつはCBが先に出ていかないと出せない

ですので、Cを先に出した場合を考えると、
1:C 2:B 3:A 4:D (4番目のDは全て出してから充填して出すイメージです)
1:C 2:B 3:D 4:A (全て出力しなくてもDは充填できるので、CBを出した後に充填して出すイメージ)
以下下の★は出した(出力した)と考えてください。
■C■★            
■B■    ■B■★  ■D■*D補充&★  
■A■    ■A■    ■A■            ■A■★最後Aが出るイメージ

と考えるとですね。

ウしかないんじゃないかな…と
2018.09.26 16:45
むぎちょんさん 
(No.3)
イA,D,B,Cの例で追加しておきます。
A,D,B,Cは最後C,BならOKなのですが、B,Cの順では出せないのですよ。
■A■★  ■B■  ■C■  ■D■★  ■C■
                ■B■  ■C■    ■B■※回答ではBになっているが、Cを出さないと出せないため正しくない
                      ■B■
2018.09.26 17:00
うっさんさん  
(No.4)
>むぎちょんさん

ありがとうございます!
ずっと「なんでこんな出し入れ方でやってるんだろ・・・」と思ってて埒があきませんでした・・

今後、もし詰まった時があったら各選択肢で組み合わせが実現可能かどうか試してみることにします!

2018.09.26 17:06
管理人 
(No.5)
解説に選択肢ごとのスタック動作を追記いたしました。

平成29年秋期  問5
  https://www.fe-siken.com/kakomon/29_aki/q5.html
2018.09.26 17:15
うっさんさん  
(No.6)
>ミルキーさん

わかりやすくなりました!あるがとうございます!
2018.09.26 17:24

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。

その他のスレッド


Pagetop