後置記法から中置記法へのコンバーターを作成しようとしていますが、助けが必要です。infix-to-postfix conversion に関する質問が既にあります。これは、変換に失敗している例を示しています。(注: マイナス記号がありません!)
以下は私のコンバーターの出力です。1 番目の「列」は後置入力、2 番目は中置出力、3 番目はおそらく取得すべきもの (?) です。
2 - = - 2 =? - 2 true
1 + 2 + = + 1 + 2 =? + 1 + 2 true
1 + 2 + + = + (+ 1 + 2) =? + 1 + + 2 false
1 + 2 + + 3 - - 4 - - = - (- (+ (+ 1 + 2) - 3) - 4) =? + 1 + + 2 - - 3 - - 4 false
この問題を解決できると思いますか、それとも最後の 2 行は実際に正しく変換されていますか? この問題を解決するアルゴリズムをどのように記述しますか?
+
より多くの演算子 ( andだけでなく) を単項演算子と 2 項演算子の両方として設定できると仮定してください-
。単項演算子は 2 項演算子よりも優先されます。