使用平方根运算的后缀评估

问题描述

我的任务是创建后缀评估,其中 sqrt 操作将可用。 我有一个与此相关的 Java 代码

import java.util.Stack;

public class Evaluate {
public static void main(String[] args) {
    Stack<String> ops  = new Stack<String>();
    Stack<Double> vals = new Stack<Double>();

    while (!StdIn.isEmpty()) {
        String s = StdIn.readString();
        if      (s.equals("("))               ;
        else if (s.equals("+"))    ops.push(s);
        else if (s.equals("-"))    ops.push(s);
        else if (s.equals("*"))    ops.push(s);
        else if (s.equals("/"))    ops.push(s);
        else if (s.equals("sqrt")) ops.push(s);
        else if (s.equals(")")) {
            String op = ops.pop();
            double v = vals.pop();
            if      (op.equals("+"))    v = vals.pop() + v;
            else if (op.equals("-"))    v = vals.pop() - v;
            else if (op.equals("*"))    v = vals.pop() * v;
            else if (op.equals("/"))    v = vals.pop() / v;
            else if (op.equals("sqrt")) v = Math.sqrt(v);
            vals.push(v);
        }
        else vals.push(Double.parseDouble(s));
    }
    StdOut.println(vals.pop());
 }
}

我的问题是我不知道 StdIn 和 StdOut 的作用是什么,我想创建一个带有 posfix 表达式的字符串,从那里完成所有过程,比如 String s="4 5 4 * 6 9 4 平方 6"

有没有其他最好的方法解决这个问题?谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)