正答2
解説
正解は2です。
スタックは、最後に入れたデータを最初に取り出す後入れ先出し(LIFO:Last In First Out)のデータ構造です。
計算式では、途中結果を一時的に積んでおき、あとで取り出して使う場面に向いています。
【選択肢別解説】
1:× 格納した順番に取り出すのは先入れ先出し(FIFO:First In First Out)であり、キューに適した処理です。
スタックは逆に、最後に格納したものから取り出します。
2:○ 途中結果をスタックに積み、別の計算を終えてから取り出して計算するのは、LIFOの性質そのものです。
かっこを含む式や逆ポーランド表記の計算がこの処理にあたります。
3:× 整列されたデータの中間の要素を変更するには、任意の位置に直接アクセスできる配列が適しています。
スタックは先頭(最上段)しか操作できません。
4:× 中間位置への挿入には、ポインタをつなぎ替えるだけで済む連結リストが適しています。
スタックでは中間に挿入できません。
【ポイント】
スタックはLIFO、キューはFIFOと対で覚えます。
逆ポーランド表記の計算、関数の呼出しと戻り先の管理などがスタックの代表的な用途です。