スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.2044
データ構造の一つであるスタックに関する記述として、不適切なものはどれか。

【正解の解説】

最初に追加したデータを最初に取り出す先入れ先出し(FIFO)方式でデータを管理する。

スタックは最初に入れたデータが最後に出る仕組み(LIFO)であり、この選択肢が述べている先入れ先出し(FIFO)は別のデータ構造である「キュー」の特徴です。スタックをカフェのトレイ置き場に例えると、一番下に置いたお盆は、上に積み上げられたお盆をすべて片付けないと取り出せないため、最初に入れたものが最後になってしまいます。

スポンサーリンク

【その他の選択肢の解説】

最後に追加したデータを最初に取り出す後入れ先出し(LIFO)方式でデータを管理する。

これはスタックの最大の特徴を正確に表した正しい記述です。試験では「先入れ先出し」と混同させようとする罠がよく仕掛けられます。お皿の山をイメージしてください。一番上に重ねた(最後に追加した)お皿を、次に使うときの一番最初に手に取りますよね。この直感的な感覚がそのままコンピュータの世界のLIFO構造を表しています。

データの追加や削除を一端でのみ行い、要素の挿入順序とは無関係に取り出しが行われる。

これはスタックの動作原理を正確に説明しています。スタックの構造は一本の筒のようなもので、データの出し入れは常に同じ「片方の端(トップ)」だけで行われます。そのため、新しく入ってきたデータが常に一番上に陣取り、古いデータは奥へ押しやられるため、取り出される順番は挿入された順序に強く支配されることになります。

ポインタを用いてデータを管理し、リストの途中の位置にある要素を直接参照することができる。

これはスタックではなく、配列や線形リストなどのデータ構造の説明です。スタックは一番上のデータにしかアクセスできないという厳しいルール(制限)を持つことでシンプルで高速な処理を実現しています。途中のデータを自由にいじれるわけではないため、この記述はスタックの性質に反する不適切な説明となります。