問題 No.3028
データ構造の一つであるスタックに関する記述として、不適切なものはどれか。
【正解の解説】
データ構造の両端でデータの追加と削除を行い、最初に追加したデータから順に取り出す。
最初に入れたデータが最初に出てくるこの方式は、飲食店などの「行列」に例えられます。先に並んだ人が先にレジに案内される仕組みであり、両端から出し入れするスタックとは根本的に異なる動きをするため、この記述は不適切となります。
スポンサーリンク
【その他の選択肢の解説】
データの追加と削除を一方の端でのみ行い、最後に追加したデータから順に取り出す。
試験対策で最も重要な「LIFO(Last In, First Out)」の原則を述べています。底の深い筒に本を次々と放り込むと、一番最後に入れた(一番上の)本しか最初に取り出せないのと同じで、実務でも関数呼び出しの管理などで広く使われている正しいデータ構造です。
データの追加と削除を両端で行い、ポインタの向きによって順序を入れ替えて取り出す。
初学者が混乱しやすい「両端」というキーワードをあえて使い、もっともらしい嘘の仕組みを作った典型的なひっかけ選択肢です。データ構造の基本はシンプルであり、ポインタの向きで勝手に順序が入れ替わるような複雑な制御は行われません。
データの追加を一方の端で行い、最初に追加したデータから順に取り出す。
一方の端から追加して最初に入れたものから取り出すという動作は、窓口の順番待ちと同じ「先入れ先出し(FIFO)」のキューを指しています。スタックは最後に入れたものから取り出すため、この記述はスタックの特徴を誤って伝えています。