【发布时间】:2022-01-23 04:13:09
【问题描述】:
我需要一些关于后缀代码前缀的帮助。当我通过 GUI 从表达式“* 2 + 2 - + 12 9 2”生成动作时,它返回 2*。它应该返回“2 2 12 9 + 2 -+*”。我不断更改代码,并不断得到相同的结果。如有任何指导,我将不胜感激。
import java.util.*;
public class Postfix{
static String prePostfix(String p){
Stack<String> stack = new Stack<String>();
int l = p.length();
for(int i = l-1; i >= 0; i--){
if(isOperator(p.charAt(i))){
String stack1 = stack.peek();
stack.pop();
String stack2 = stack.peek();
stack.pop();
String temp = stack1 + stack2 + p.charAt(i);
stack.push(temp);
}
else{
stack.push(p.charAt(i) + "");
}
}
return stack.peek();
}
static boolean isOperator(char x){
switch (x){
case '+':
case '-':
case '/':
case '*':
case '^':
return true;
}
return false;
}
}
【问题讨论】:
标签: java algorithm data-structures stack postfix-mta