令和元年秋期試験午前問題  問8

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
瑠璃さん  
(No.1)
https://www.fe-siken.com/s/kakomon/01_aki/q8.htmlについて質問なのですが、
こちら解説ではスタック2個の時、Kをどちらに積んだとしてもAを先に出力することができない、とありますが、

スタック1にAをプッシュ
スタック2にCをプッシュ
スタック2にKをプッシュ
スタック1にSをプッシュ

スタック1→AS
スタック2→CK

スタック1からSをポップ
スタック1にTをプッシュ
スタック1からTをポップ

スタック1→A
スタック2→CK
プッシュ済→ST

この流れであれば次にAをポップする事ができると思うのですが、私の考え違いでしょうか?

どの道次にCをポップする事ができないのでSTACKは完成しないということは理解しています。
あくまで解説か私、どちらが間違っているのか知りたい、という質問です。

よろしくお願いします。
2021.07.21 00:13
GinSanaさん 
FE シルバーマイスター
(No.2)
>どの道次にCをポップする事ができないのでSTACKは完成しない
たぶん解説はその書き漏れでしょうねえ。たしかにAはpop可能です。
2021.07.21 08:08
瑠璃さん  
(No.3)
> GinSanaさん

解説が漏れていることもあるんですね…
おかげさまで凄くスッキリしました。

ありがとうございました!
2021.07.21 11:10
管理人 
(No.4)
ご報告ありがとうございます。解説を以下のように改善させていただきました。

push A:[A]  []
push C:[A]  [C]
push K:[A,K]  [C] または [A]  [C,K] //×


AをCより先にpopするには、CをAとは別のスタックに積む必要があります。その後、Kを積むと、AまたはCをKより先に出力することができなくなってしまうので目的の順番で出力できません。
2021.07.21 11:30
瑠璃さん  
(No.5)
管理人さん

遅ればせながら、ご対応ありがとうございます。
今後も参考にさせていただきます!
2021.07.22 19:40

返信投稿用フォーム

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

その他のスレッド


Pagetop