ITパスポート 2016年 (平成28年 秋期) 問92「後に入れたデータが先に取り出されるデータ構造(以下,スタックという)がある。これ…」の正解と解説です。ITパスポート試験の「テクノロジ系」分野の過去問で、これまでの受験者の正答率は約68%です。
エ. C, D, A, B
正答率 67.8%(780人中 529人が正解)
スタックはLIFO(Last In First Out,後入れ先出し)構造で,最後に積んだものから先に取り出される. 右から順にA,B,C,Dを入力した状況での出力順を検討する. エ「C,D,A,B」を実現するには:CまでにA,Bを積んでおきCが入ったら出力,続いてDを入力後すぐ出力,次にAを出したいがその時点でスタックにはA,B(下から積まれている)があり,LIFOの原則によりAより上にあるBを先に取り出さないとAは取れない. しかしBよりAを先に出す必要があるためLIFO原則に反し実現不能で,答えはエ. 入力順A→B→C→DとLIFO制約で出力順序が決まる代表的な問題で,スタックの動作を丁寧に追えば解ける.