平成26年度 秋期 午前 問5
データ構造
スタックに関する問題
加減乗除を組み合わせた計算式の処理において,スタックを利用するのが適している処理はどれか。
- ア格納された計算の途中結果を,格納された順番に取り出す処理
- イ計算の途中結果を格納し,別の計算を行った後で,その計算結果と途中結果との計算を行う処理
- ウ昇順に並べられた計算の途中結果のうち,中間にある途中結果だけ変更する処理
- エリストの中間にある計算の途中結果に対して,新たな途中結果の挿入を行う処理
答えと解説を見る
✓ これが正解イ計算の途中結果を格納し,別の計算を行った後で,その計算結果と途中結果との計算を行う処理
解説
後から置いたものを先に取り出す形に向きます。
スタックは、置いたものを積み上げていき、いちばん上にあるものから取り出す入れ物です。後から置いたほうが先に出てくるので、いったん脇に置いて別の仕事を片づけ、それが済んだら置いたところへ戻る、という形の処理と相性がよくなります。判定の軸は、その処理が積み上げた一番上だけに触れて済むかという一点です。計算式の処理でいえば、足し算の途中で掛け算が現れたときに、足す予定の値をいったん置いておき、掛け算を先に済ませてから置いた値を取り出して合わせる場面がこれにあたります。括弧の入れ子も同じ形で、内側から片づけて外側へ戻ります。正解にあたるのは、途中結果をいったん格納し、別の計算を済ませてからその結果と合わせるという場面です。
ほかの選択肢はなぜ違うのか
- ア格納された計算の途中結果を,格納された順…:置いた順番のとおりに古いものから出していく処理で、これは先入れ先出しの入れ物であるキューの性質です。積み上げた入れ物では出てくる順が逆になります。
- ウ昇順に並べられた計算の途中結果のうち,中…:並んでいるものの中ほどにある値だけを書き換える処理です。積み上げた入れ物では一番上にしか手が届かないので、途中の要素を直接触ることができません。
- エリストの中間にある計算の途中結果に対して…:並びの中ほどに新しい値を差し込む処理で、要素をつなぎ替えられるリストが向く場面です。積み上げた入れ物は上に足すか上から取るかの二通りしかありません。
出典:平成26年度 秋期 基本情報技術者試験 午前 問5
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)