- 54 名前:名前は開発中のものです。 mailto:sage [02/06/29 09:50 ID:???]
- 逆ポーランド記法は、スタックを使って実現。
まず、逆ポーランド記法に数式をなおす。 {(10+3)*5}/5 → 10 3 + 5 * 5 / と言うようになる。 まずは、数式を逆ポーランド記法になおす関数をつくり、結果を配列A[]にいれる。 次に、逆ポーランド記法の計算をする関数を作る。 A[]から一つずつ要素を取り出して、演算子かどうかを判断しながらスタックに格納していく。演算子だった場合は、計算を行う。 動作1:数字がきているので、そのままスタックに積む。 |10| 動作2:数字がきているので、そのままスタックに積む。 |10| 3| 動作3:演算子"+"がきているので、A[0] + A[1] をして、A[0]に代入。 |13| 動作4:数字がきているので、そのままスタックに積む。 |13| 5| 動作5:演算子"*"がきているので、A[0] * A[1] をして、A[0]に代入。 |65| 動作6:数字がきているので、そのままスタックに積む。 |65| 5| 動作7:演算子"/"がきているので、A[0] / A[1] をして、A[0]に代入。 |13| 動作8:要素がなくなったので、A[0]を出力して終了。
|

|