(4-3)前缀、中缀、后缀表达式

来源:【尚硅谷】数据结构与算法(Java数据结构与算法)

一、前缀表达式

二、中缀表达式

三、后缀表达式

 

四、逆波兰表达式求值代码

力扣地址:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation/solution/javachun-shu-zu-he-zhan-liang-chong-shi-xian-jian-/

class Solution {
    public int evalRPN(String[] tokens) {
        Stack<Integer> numStack = new Stack<>();
        Integer op1,op2;
        for(String s : tokens){
            switch(s){
            case"+":
                op2 = numStack.pop();
                op1 = numStack.pop();
                numStack.push(op1 + op2);
                break;
            case "-":
                op2 = numStack.pop();
                op1 = numStack.pop();
                numStack.push(op1 - op2);
                break;
            case "*":
                op2 = numStack.pop();
                op1 = numStack.pop();
                numStack.push(op1 * op2);
                break;
            case "/":
                op2 = numStack.pop();
                op1 = numStack.pop();
                numStack.push(op1 / op2);
                break;
            default:
                numStack.push(Integer.valueOf(s));
                break;
            }                      
        }
        return numStack.pop();
    }
}

五、中缀表达式转后缀表达式

 

 

 

 

 代码略。

posted @ 2022-03-28 22:31  jojo的奇妙编程  阅读(38)  评论(0)    收藏  举报