データ構造とアルゴリズム

逆ポーランド記法(後置記法)で書かれた式「3 4 + 2 * 5 −」を、数が来たらスタックに積み、演算子が来たら2つの値を取り出して計算し、結果を積む方法で評価した。結果はいくらか。ここで、演算子の左側の値は先に積まれた方の値とする。

  1. A−9
  2. B6
  3. C9
答えと解説を見る

正解:C. 9

3、4を積み、+ で取り出して 3 + 4 = 7 を積みます。次に2を積み、* で 7 × 2 = 14 を積みます。5を積み、− で先に積まれた14から後の5を引いて 14 − 5 = 9 が結果です。後置記法は演算の順番が並びで決まるのでかっこが要らず、通常の式では (3 + 4) × 2 − 5 に当たります。−9は引き算の左右を取り違えた値、6はかっこを付けずに 3 + 4 × 2 − 5 と読んだ値です。

  • A. 引き算で 5 − 14 と左右を取り違えた値です。左側は先に積まれた14です。
  • B. かっこのない 3 + 4 × 2 − 5 として計算した値です。後置記法では + が先に行われます。
  • C. 正しい。(3 + 4) × 2 − 5 = 9 です。
この分野を解く 分野ページへ

関連する計算ツール

データ構造とアルゴリズムの参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

データ構造とアルゴリズムのほかの問題

  1. ハッシュテーブル(ハッシュ表)における衝突(コリジョン)の説明として正しいものはどれか。
  2. 大きさ7のハッシュテーブル(位置0〜6)に、ハッシュ関数 h(k) = k mod 7 でキー10、17、24、3をこの順に格納する。衝突したときは、位置を1つずつ後ろへずらして(6の次は0)空いている位置を探す線形探査法を使う。キー3が格納される位置はどれか。
  3. ハッシュテーブルの衝突を処理する方法として、チェイン法(同じ位置の要素を連結リストでつなぐ)とオープンアドレス法(表の中の空いている別の位置を探す)を比べた説明として正しいものはどれか。負荷率は、格納した要素数を表の大きさで割った値とする。
  4. 配列の中央の要素と比べて、探す範囲を半分ずつに絞っていく二分探索を使うための前提条件として正しいものはどれか。
  5. 昇順に整列された異なる1,000個の値から二分探索で値を探す。1回の比較で「一致・より小さい・より大きい」が分かるものとすると、見つかる場合も見つからない場合も含めて、比較の回数は最大で何回か。