新しく質問する

逆ポーランド記法

役に立った:0件
  • 質問者:shina5963
  • 投稿日時:2008/07/02 23:41
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

C言語で逆ポーランド記法への変換をしようとしています.
演算子の優先順位の付け方がわかりません.
構造体の配列に数式を入れて,それぞれに優先度をつけてみたりしたのですが,いい方法でないように思います.
適切な方法を知っている方よろしくお願いします.

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件
  • 回答者:Tacosan
  • 回答日時:2008/07/03 12:52

LR系の解析手法では「スタックを使って」解析しています. 式の解析に限定しちゃえば「演算子順位解析」あたりが簡単かな. フルスペックの LR を使うほどじゃないし.
もちろん LL系, 例えば再帰下降解析も「スタックを使ってる」と言い張ることは可能です.

通報する

  • 参考になった:0件
  • 回答者:sakusaker7
  • 回答日時:2008/07/03 03:27

>演算子の優先順位はどのように考えればいいのでしょうか?
乗除算は加減算よりも優先順位が高い
とかいうのを使いたい全部の演算子で関係が壊れないように決めればいいだけですが?

左結合の演算子と右結合の演算子(べき乗とか)や、同じ順位の演算子を
どうするかという問題はありますけどね。

VB.NET - katamari soulware
http://katamari.jp/soulware/index.php/post/categ …
電卓のアルゴリズム
http://www.di.takuma-ct.ac.jp/~miyatake/open/cal …

通報する

  • 参考になった:0件

> スタックを使うのも作ってみたいのですが,演算子の優先順位はどのように考えればいいのでしょうか?
スタックは変換した逆ポーランド記法の計算で試してみるのがよいかと思います。

通報する

  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:shinya23so
  • 回答日時:2008/07/03 00:39

逆ポーランド記法の特徴、演算子の優先順位など↓
http://ja.wikipedia.org/wiki/%E9%80%86%E3%83%9D% …
逆ポーランド記法(後置記法)変換プログラムの例↓
http://www.sra.co.jp/people/miyata/algorithm/pos …

通報する

  • 参考になった:0件

No.1ベストアンサー10pt

二分木を使えば効率よく実装できると思います。

通報する

この回答へのお礼

ありがとうございます.
早速,作ってみようと思います.
スタックを使うのも作ってみたいのですが,演算子の優先順位はどのように考えればいいのでしょうか?

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter