【Java】计算加减乘除数学公式(简单计算器)含小数

您所在的位置:网站首页 超级函数表达式运算法则 【Java】计算加减乘除数学公式(简单计算器)含小数

【Java】计算加减乘除数学公式(简单计算器)含小数

2024-07-09 17:46| 来源: 网络整理| 查看: 265

先把你输入的数学运算公式(即中缀表达式)存到一个list中,方便转换为后缀表达式

再把存在list中的中缀表达式进行遍历,进行变为后缀表达式的转换,思路如下: 1、建一个stack栈用于存操作符,建一个list用于存储后缀表达式 2、遍历第一个list的中缀表达式,遇到数字,就放到新list中;遇到操作符的话,要分情况讨论:

a)当运算符栈为空或者栈顶操作符的优先级小于当前遍历到的运算符优先级时(如+和-的优先级低于 * 和 /),直接入栈 b)当运算符栈不为空时且栈顶操作符的优先级大于或等于当前遍历到的运算符优先级时,循环执行出栈操作并加入list中,直到遇到优先级小于当前运算符的元素为止。循环执行完后再将当前运算符压栈。

3、遍历到括号时:如果是左括号,直接压栈,如果遇到右括号,循环出栈,直到遇到左括号为止。注:只有遇到右括号,左括号才会出栈 4、遍历完第一个list后,把stack中剩余的依次弹出到新list中,就成了后缀表达式。

此时新的list里面存有转换好的后缀表达式,接下来就是对后缀表达式求值了: 1、建一个新栈 2、遍历后缀表达式,遇到数字直接压栈;遇到操作符,则将栈顶和次栈顶的两个数进行该操作符的运算。并将结果压入栈中,最后得到仅剩的一个栈元素即为答案。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3