スポンサーリンク

問題の解答・解説ページ

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

この問題をクイズ形式で解く
問題 No.1724
データ構造の一つであるスタック(Stack)の動作として、適切なものはどれか。

【正解の解説】

最後に入力されたデータが最初に取り出される、後入れ先出し(LIFO)の方式である。

スタックは、積み上げた皿を上から順に取り出すイメージです。最後に入れたものが一番先に出てくる仕組みにより、関数呼び出しの戻り先管理やブラウザの「戻る」ボタンといった、履歴を逆順に辿る処理で極めて重要な役割を果たします。

スポンサーリンク

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

最初に入力されたデータが最初に取り出される、先入れ先出し(FIFO)の方式である。

先に入ったものが先に出る「FIFO(First In, First Out)」は、行列のように並んで順番を待つ仕組みです。スタックと対になる概念であり、プリンタの印刷待ちやタスクの順次処理など、公平性が求められる場面で活用されます。

要素を順序付けして管理し、データの挿入や削除を任意の位置で自由に行える方式である。

スタックは入出力場所が「頂上」の一箇所に制限されていますが、この説明にあるように任意の位置での挿入・削除が可能な構造は「リスト」と呼ばれます。スタックよりも柔軟ですが、その分管理コストやメモリ利用の特性が異なります。

要素を循環させて管理し、空き領域を効率的に再利用するためのリング状の方式である。

リングバッファは、メモリの終わりまで到達すると先頭に戻る仕組みで、限られた容量を効率的に再利用するための手法です。スタックのように入出力が片端に限定されるものではなく、データ通信のバッファ管理などで非常によく利用されます。