中置へのPostfix

中置表現:フォームOP bの表現。オペレータは、オペランドのすべての対の間で、ある場合。
Postfixの式:フォームAB OPの表現。演算子は、オペランドの各ペアのために従わされている場合。

入力:ABC ++ 
出力:(A +(B + C))

入力:AB * C + 
出力:((* b)は+ c)の
分析
1。入力から次のシンボルを読みます。
シンボル2.Ifはスタックにプッシュ、オペランドです。
3.Otherwiseは、
... 3.1記号は演算子です。
... 3.2は、スタックからトップ2の値をポップします。
... 3.3は、引数として値で、オペレータを入れて、文字列を形成します。
... 3.4スタックに戻った文字列を押してください。
1  クラスソリューション{
 2      ブールisOperator(チャーX){
 3          スイッチ(X){
 4              ケース ' + ' 5              ケース ' - ' 6              場合 ' / ' 7              場合 ' * ' 8                  リターン 9              デフォルト10                  リターン はfalse ;
11          }
 12      }
 13  
14     ストリングpostToInfix(文字列式){
 15          スタック<ストリング> S = 新しいスタックの<string> ();
16  
17          のためにint型 iは= 0 ; iはexp.lengthを()<; iは++ ){
 18              であれば(!isOperator(exp.charAt(I))){
 19                  s.push(exp.charAt(I)+ "" ;
20              } {
 21                  列OP1 = s.pop()。
22                  列OP2 = s.pop()。
23                  s.push(" "+ OP2 + exp.charAt(I)+ OP1 + " " );
24              }
 25          }
 26          リターンs.peek()。
27      }
 28 }

 

おすすめ

転載: www.cnblogs.com/beiyeqingteng/p/11318722.html