zoukankan      html  css  js  c++  java
  • 后缀表达式计算的基本实现

    import java.util.Stack;
    
    /**
     *  目标:实现后缀表达式的基本运算
     * 运算规则:1.建立栈 从左到右数字依次入栈
     *         2.如果遇到符号,取出栈顶,和次栈顶的数字进行运算(次栈顶数字在操作符前)
     *         3.直到最后计算出最终结果
     */
    
     public class SuffixTest {
        public static void main(String[] args) {
            //后缀表达式:4 5 * 8 - 60 + 8 2 / +
            String suffix = "4 5 * 8 - 60 + 8 2 / +";
            String[] arrString = suffix.split(" ");
            Stack<Integer> stack = new Stack<Integer>();
            for (String ele:arrString){
                if(ele.matches("\d+")){
                    stack.push(Integer.parseInt(ele));
                }else{
                    Integer num1 = stack.pop();
                    Integer num2 = stack.pop();
                    stack.push(getResult(num1,num2,ele));
                }
            }
            System.out.println("最后结果:"+stack.pop());
        }
    
        /**
         * 根据运算符运算结果
         * @param num1
         * @param num2
         * @param operate
         * @return
         */
        public static Integer getResult(Integer num1,Integer num2,String operate){
            if("+".equals(operate)) return num2+num1;
            if("-".equals(operate)) return num2-num1;
            if("*".equals(operate)) return num2*num1;
            if("/".equals(operate)) return num2/num1;
            else return 0;
        }
     }
  • 相关阅读:
    halcon7月license
    软设考试成绩查询结果
    Halcon自学笔记
    Window_Store
    Windows_Store之2048
    基于C#开发的2048
    MVC+EF+EasyUI实现CRUD
    ASP.NET MVC Model验证总结
    浙江省三级数据库考试
    基于C#的短信发送
  • 原文地址:https://www.cnblogs.com/cai170221/p/13693659.html
Copyright © 2011-2022 走看看