過去問解きまくり研究所 ホーム

平成25年度 春期 午前 問6

情報に関する理論

逆ポーランド表記法の式

図は,逆ポーランド表記法で書かれた式 abcd+++ をスタックで処理するときのスタックの変化の一部を表している。この場合,スタックの深さは最大で 4 となる。最大のスタックの深さが最も少ない逆ポーランド表記法の式はどれか。

〔図〕スタックの変化(升の中身を上から順に書き写したもの。左が古い状態)

状態1        状態2        状態3        状態4
  d
  c        c+d
  b          b        b+c+d
  a          a          a        a+b+c+d
(深さ4)    (深さ3)    (深さ2)    (深さ1)
答えと解説を見る

✓ これが正解アab+c+d+

解説

英字を2つ積むごとにたたむ式が深さ2で最小です。

逆ポーランド表記法の式は、左から1文字ずつ読んで処理します。英字が現れたらスタックに1つ載せるので深さが1つ増え、演算子が現れたら上の2つを下ろして結果を1つ載せ直すので深さが1つ減ります。この数え方は設問が示した例で確かめられます。abcd+++ を読むと英字が4つ続いたところでいちばん深くなり、設問が言う最大4と一致します。ですから深さを浅く保つ鍵は、英字を続けて載せないことです。2つ載せた時点で演算子を挟んでたためば、深さは2を超えません。判定の軸は二つで、最初の演算子が来るまでに英字が何個続くかと、そのあと積み直して同じ高さに戻っていないかを見ます。

ほかの選択肢はなぜ違うのか

出典:平成25年度 春期 基本情報技術者試験 午前 問6

この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)