令和3年度 基礎科目の一覧へ

令和3年度・基礎科目 I-2-5

逆ポーランド表記法

問題文をPDFで見る

解説

ポイント

中置記法の式を構文木にして,逆ポーランド表記法に直す問題です。

考え方と解き方

いちばん最後に計算する演算子を木のてっぺん(根)に置き,「左 → 右 → 節」の順に書き出すと逆ポーランド表記法になります。

÷ は + より先に計算するので,A+B÷C は A +(B÷C)です。

  • 式全体で最後に計算するのは ×。根は ×,左は A+B÷C,右は D-F
  • 左側:最後に計算するのは +。その左は A,右は B÷C
  • B÷C は「BC÷」。左側は A,BC÷,+ の順で「ABC÷+」
  • 右側の D-F は「DF-」
  • 最後に根の × を後ろにつけて「ABC÷+DF-×」
  • 確かめ:左から読んで演算子が来たら直前の2つを計算すると,B÷C → A+(B÷C) → D-F → × の順で,もとの式と同じ。答えは ①

ほかの選択肢

②・⑤(AB+C÷ で始まる):(A+B)÷C の意味になり,÷ を先に計算する決まりに合いません。

④(演算子が前にある):演算子を前に書くポーランド表記法(前置記法)の形で,逆ポーランドではありません。

覚えておくこと

  • 逆ポーランド表記法:「数,数,演算子」の順に書く。かっこが要らない
  • 構文木を「左部分木 → 右部分木 → 節」の順(後行順)にたどると逆ポーランド表記法になる
  • 先に計算するもの(×,÷,かっこの中)から書き出す。読むときは,演算子が来たら直前の2つを計算する

出典:令和3年度 技術士第一次試験 基礎科目 I-2-5(公益社団法人日本技術士会) ジャンル:情報・アルゴリズム