問題 No.2116
データ構造のスタックにおいて、蓄えられているデータの中から、最後に追加されたデータを取り出す操作を表す用語として、最も適切なものはどれか。
【正解の解説】
ポップ
これは狭い筒の中に本を上から順番に積み重ねていき、一番上にある本を最後に入れたものから順番にスッと抜き出す動作と同じです。最後に積んだものが最初に手に入ると言う「後入れ先出し(LIFO)」の原則を体現する非常に重要な基本操作となっています。
スポンサーリンク
【その他の選択肢の解説】
プッシュ
「プッシュ」は英語の「押す」という意味から、データを上へ上へと積み上げる動作を表しています。試験では「ポップ(取り出し)」と「プッシュ(追加)」の役割が逆にして出題されることが多いため、積み上げるのか取り出すのかをしっかり区別して覚える必要があります。
エンキュー
「エンキュー」は遊園地のアトラクション待ちの列の最後に新しく並ぶような動作で、最初に入ったデータが最初に取り出される「先入れ先出し(FIFO)」のキューで使われます。スタックの「ポップ」や「プッシュ」と名前や仕組みが似ているため、初学者が一番混同しやすい最大のトラップです。
シフト
「シフト」はプログラミング言語の配列やビット演算などでよく使われる概念であり、データを一列にずらす処理を表します。スタックの最後尾の出し入れとは全く異なる仕組みであるため、データ構造の用語問題における典型的なダミー選択肢として配置されています。