平成26年度 秋期 基本情報技術者試験 午前 問5
テクノロジ/アルゴリズム加減乗除を組み合わせた計算式の処理において,スタックを利用するのが適している処理はどれか。
出典:平成26年度 秋期 基本情報技術者試験 午前 問5
- ア格納された計算の途中結果を,格納された順番に取り出す処理
- イ計算の途中結果を格納し,別の計算を行った後で,その計算結果と途中結果との計算を行う処理
- ウ昇順に並べられた計算の途中結果のうち,中間にある途中結果だけ変更する処理
- エリストの中間にある計算の途中結果に対して,新たな途中結果の挿入を行う処理
正解:イ
解説
スタックはLIFO(後入れ先出し)の構造をもち,直前に格納した途中結果を後で取り出して次の演算に使うという処理に適しています。計算式の評価では,演算子の優先順位に従って括弧の内側から計算した途中結果を一時的に保持し,外側の演算で再利用する必要があるため,スタックが利用されます。
選択肢ごとの解説
- ア誤り。格納順に取り出す処理はFIFO(先入れ先出し)であり,キューを利用するのが適しています。
- イ正しい。途中結果を格納しておき,後で別の計算結果と組み合わせて使う処理は,最後に格納した値から取り出すスタックの特性に適合します。
- ウ誤り。中間にある特定の要素だけを直接変更する処理は,スタックでは中間要素に直接アクセスできないため適していません。
- エ誤り。リストの中間への挿入は,スタックの構造(末端からの出し入れのみ)では実現できません。