Java 创建前缀表示法表达式

Java 创建前缀表示法表达式,java,Java,我正在尝试将表达式更改为前缀表示法。我能够理解后缀符号,我想知道在创建前缀类时是否可以利用后缀类的基本模板。我想表达一种像。。。 (6*(24+81))并具有:*6+24 81的输出。这在不跟踪级别的情况下是可能的吗?…这意味着当循环输入表达式的括号部分时,是否需要跟踪变量?我只是很难想象这个结构是如何工作的 这是我的后缀码: static Stack operatorStack = new Stack(); String ConvertToPostfix(String exp) {

我正在尝试将表达式更改为前缀表示法。我能够理解后缀符号,我想知道在创建前缀类时是否可以利用后缀类的基本模板。我想表达一种像。。。 (6*(24+81))并具有:*6+24 81的输出。这在不跟踪级别的情况下是可能的吗?…这意味着当循环输入表达式的括号部分时,是否需要跟踪变量?我只是很难想象这个结构是如何工作的

这是我的后缀码:

    static Stack operatorStack = new Stack();
String ConvertToPostfix(String exp) {
    exp = "("+exp+")";
    int i;
    char token;
    String output = "";

    for (i = 0; i < exp.length(); i++) {
        token = exp.charAt(i);
        if (Character.isLetterOrDigit(token) == true)
            output += token;
        else if (token == '(')
            operatorStack.push(token);
        else if (token == ')') {
            char topChar;
            while ((topChar = peekAtTop()) != '(') {
                output += topChar;
                popAtTop();
            }

        operatorStack.pop();
        } 
        else {
            while (priority(token) <= priority(peekAtTop())) {
                output += peekAtTop();
                popAtTop();
            }
            operatorStack.push(token);
        }
}
    return output;

}
静态堆栈操作符Stack=new Stack();
字符串ConvertToPostfix(字符串扩展){
exp=“(“+exp+”);
int i;
字符标记;
字符串输出=”;
对于(i=0;i
这是一个随机的例子:

要更改线性表示(即表达式为字符串),只需更改遍历树的方式

您需要做的是:

  • 学习如何表现(总是方便)
  • 将表达式解析为一棵树(相当简单),
    StringTokenizer
    是您的朋友
  • 将三个遍历过程翻译成Java
  • 无论你的教授要求什么程序,都可以打电话。(顺便说一句,多听教授的话不会有什么坏处。)
希望这有帮助