平成22年度春期 ITパスポート 問85 解説
下から上へデータを積み上げ,上にあるデータから順に取り出すデータ構造(以下,スタックという)がある。これを用いて,図に示すような,右側から入力されたデータの順番を変化させて,左側に出力する装置を考える。この装置に対する操作は次の3通りである。
① 右側から入力されたデータをそのまま左側に出力する。
② 右側から入力されたデータをスタックに積み上げる。
③ スタックの1番上にあるデータを取り出して左側に出力する。
この装置の右側から順番にX,Y,Zを入力した場合に,この①~③の操作を組み合わせても,左側に出力できない順番はどれか。

- アX,Z,Y
- イY,Z,X
- ウZ,X,Y
- エZ,Y,X
答えを見る
正解 ウZ,X,Y
要点スタックは後から入れたものを先に取り出す(LIFO)
解説
Z,X,Yの順は出力できません。最初にZを出力するには、XとYをスタックに積む必要があり、スタックの上はYになります。次に取り出せるのはYなので、Xを先に出すことはできません。
- ア:Xを①で出力、Yを②で積み、Zを①で出力、Yを③で出力すればX,Z,Yになる。
- イ:Xを積み、Yを①、Zを①、Xを③で出力すればY,Z,Xになる。
- エ:X、Yを積み、Zを①、Y、Xを順に③で出力すればZ,Y,Xになる。