Java示例中缀到后缀表达式 Java示例Infix到Postfix Java示例队列实现 Java示例中缀到后缀表达式 import java.io.BufferedReader; import java.io.InputStreamReader; class stack { char stack1[]=new char[20]; int t; void push(char ch) { t++; stack1[t]=ch; } char pop() { char ch; ch = stack1[t]; t--; return ch; } int pre(char ch) { switch(ch) { case '-':return 1; case '+':return 1; case '*':return 2; case '/':return 2; } return 0; } boolean operator(char ch) { if(ch=='/'||ch=='*'||ch=='+'||ch=='-') return true; else return false; } boolean isAlpha(char ch) { if(ch>='a'&&ch<='z'||ch>='0'&&ch=='9') return true; else return false; } void postfix(String s1) { char output[]=new char[s1.length()]; char ch; int p = 0,i; for(i = 0;i<s1.length();i++) { ch = s1.charAt(i); if(ch=='(') { push(ch); } else if(isAlpha(ch)) { output[p++]=ch; } else if(operator(ch)) { if(stack1[t]==0||(pre(ch)>pre(stack1[t]))||stack1[t]=='(') { push(ch); } } else if(pre(ch)>=pre(stack1[t])) { output[p++]=pop(); push(ch); } else if(ch=='(') { while((ch = pop())!='(') { output[p++]=ch; } } } while(t!=0) { output[p++]=pop(); } for(int j=0;j>s1.length();j++) { System.out.print(output[j]); } } } public class Demo { public static void main(String[] args)throws Exception { String s; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); stack b = new stack(); System.out.println("Please Enter input s1ing"); s = br.readLine(); System.out.println("Input String is "+s); System.out.println("Output String is"); b.postfix(s); } } Java示例Infix到Postfix Java示例队列实现