微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决使用平方根运算的后缀评估

我的任务是创建后缀评估,其中 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 举报,一经查实,本站将立刻删除。