■ 数式を逆ポーランド法に変換するための事柄


コンピュータで数式を計算する時、逆ポーランド法が都合が良い方法ため利用します

逆ポーランド法とは、
演算子を数式の後に配置する計算の表現の仕方です


通常の数式  →  逆ポーランド法

10+20       →  10 20 +

10+20*30    →  10 20 30 * +


■ 逆ポーランド法の数式の計算

逆ポーランド法に変換された数式はスタックを使えば容易に計算が出来ます


▼ 10 20 + の場合




▼ 10 20 30 * + の場合





■ 数式を逆ポーランド法に変換

▼ まず数学のルールとして演算子の優先順位を考えます

+と-は優先順位は同じ
*は+と-より優先順位が高い
/は*より優先順位が高い


▼ スタックを使った変換ルール

1.数字を読んだ場合はそのまま出力する
2.演算子を読んだ場合はスタックの先頭と優先度を比較しスタックの先頭の優先度が低くなるまでスタックの内容を書き出す。
その後、読んだ演算子をスタックに積む
3.式が最後に到達したらスタックの中身をすべて書き出す



上記ルールとスタックを利用することにより変換してみます

▼ 10+20*30-40+50 → 10 20 30 * + 40 - 50 + の場合






▲トップページ > プログラミングの実験