四则运算表达式求值
短信预约 -IT技能 免费直播动态提醒
四则运算表达式求值
两个要点
1.中缀表达式转后缀表达式
2.后缀表达式求值
中缀表达式转后缀表达式
从左到右遍历中缀表达式的每个数字和符号.
若是数字就输出,成为后缀表达式的一部分.
若是符号则判断其与栈顶符号的优先级,是右括号或者优先级低于等于栈顶符号,则栈顶元素依次出栈并输出,再将当前的符号进栈。一直到最终输出后缀表达式为止。
后缀表达式求值
从左至右遍历表达式的每个数字和符号,遇到数字就进栈,遇到符号,就弹出栈顶两个元素运算,再将运算结果入栈。一直到最终获得结果。
JDK 1.7+
结果:
[9, 3, 1, -, 3, *, +, 10, 2, /, +]
20.0
两个要点
1.中缀表达式转后缀表达式
2.后缀表达式求值
中缀表达式转后缀表达式
从左到右遍历中缀表达式的每个数字和符号.
若是数字就输出,成为后缀表达式的一部分.
若是符号则判断其与栈顶符号的优先级,是右括号或者优先级低于等于栈顶符号,则栈顶元素依次出栈并输出,再将当前的符号进栈。一直到最终输出后缀表达式为止。
后缀表达式求值
从左至右遍历表达式的每个数字和符号,遇到数字就进栈,遇到符号,就弹出栈顶两个元素运算,再将运算结果入栈。一直到最终获得结果。
JDK 1.7+
- "9 + ( 3 - 1 ) * 3 + 10 / 2";
- System.out.println(calc(target));
- }
- // 中缀表达式转后缀表达式
- " ");
- ")":
- "(")) {
- '(')) {
- result.addLast(ele);
- }
- }
- "(":
- stack.addFirst(c);
- "+":
- "-":
- "*") || ele.equals("/") || ele.equals("+") || ele.equals("-")) {
- result.addLast(stack.removeFirst());
- } "*":
- "/":
- stack.addFirst(c);
- "*") || ele.equals("/") || ele.equals("+") || ele.equals("-")) {
- Float f1 = result.removeFirst();
- Float f2 = result.removeFirst();
- "+":
- result.addFirst(f2 + f1);
- "-":
- result.addFirst(f2 - f1);
- "*":
- result.addFirst(f2 * f1);
- "/":
- result.addFirst(f2 / f1);
- break;
- }
- } else {
- result.addFirst(Float.valueOf(ele));
- }
- }
- return result.removeFirst();
- }
- }
结果:
[9, 3, 1, -, 3, *, +, 10, 2, /, +]
20.0
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
四则运算表达式求值
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
四则运算表达式求值
四则运算表达式求值两个要点1.中缀表达式转后缀表达式2.后缀表达式求值中缀表达式转后缀表达式从左到右遍历中缀表达式的每个数字和符号.若是数字就输出,成为后缀表达式的一部分.若是符号则判断其与栈顶符号的优先级,是右括号或者优先级低于等于栈顶符
2023-06-03
python四则运算表达式求值的方法
这篇文章主要讲解了“python四则运算表达式求值的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python四则运算表达式求值的方法”吧!四则运算表达式求值思路说明使用双栈来实现&md
2023-07-02
2024-04-02
java算术表达式求值怎么写
要求解一个算术表达式的值,可以使用栈来实现。具体步骤如下:创建两个栈,一个用于存储操作符(operatorStack),一个用于存储操作数(numberStack)。遍历表达式的每个字符,进行如下操作:如果字符是空格,则忽略。如果字符
2023-10-23
Python正则表达式初识(四)
今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下。特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种,分别是“{数字}”、“{数字,}”和“{
2023-01-31
2024-04-02
linux中awk、正则表达式、正则运算符怎么用
小编给大家分享一下linux中awk、正则表达式、正则运算符怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!使用awk作为文本处理工具,正则表达式是少不了的。
2023-06-13
正则表达式-问号的四种用法
问号在正则表达式中有四种常见的用法:1. 匹配零个或一个字符:在正则表达式中使用问号表示前面的字符或子表达式可选,即出现零次或一次。例如,表达式"a?b"可以匹配"b"、"ab"和"aab"。2. 非贪婪匹配:在正则表达式中使用问号可以将贪
2023-09-02
c语言逻辑表达式的运算规则是什么
C语言逻辑表达式的运算规则如下:1. 逻辑与(&&):如果两个操作数都为真(非零),则结果为真;否则为假(0)。2. 逻辑或(||):如果两个操作数中至少有一个为真(非零),则结果为真;否则为假(0)。3. 逻辑非(!):如果操作数为真(非
2023-08-16
正则表达式的运行时优化
php小编柚子为大家介绍正则表达式的运行时优化。正则表达式是一种用于字符串匹配和处理的强大工具,但在处理大规模数据时可能会导致性能问题。为了提高正则表达式的执行效率,我们可以采取一些优化策略,如使用惰性匹配、避免使用回溯、使用更精确的匹配模
2024-02-11
Python for Informatics 第11章之正则表达式(四)
注:以下文章原文来自于Dr Charles Severance 的 《Python for Informatics》11.3 组合查询和抽取如果我们想以“X-”字符串开头的行中找到数字,就像下面两行字符串:X-DSPAM-Confidenc
2022-06-04
2024-04-02
C#运算符表达式的使用
这篇文章主要介绍“C#运算符表达式的使用”,在日常操作中,相信很多人在C#运算符表达式的使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#运算符表达式的使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-06-18
2024-04-02
Python -- 三元表达式(三目运算
一些语言(如Java)的三元表达式形如:判定条件?为真时的结果:为假时的结果Python的三元表达式有如下几种书写方法:if __name__ == '__main__':a = ''b = 'True'c = 'False'#方法一:为真
2023-01-31
关于c语言逗号表达式的运算规则知识点
逗号表达式是一个有多个子表达式组成的表达式,每个子表达式用逗号分隔。逗号表达式的运算规则如下:1. 逗号表达式从左到右依次计算每个子表达式,每个子表达式的结果都会被丢弃,只有最后一个子表达式的结果会作为整个逗号表达式的结果。2. 如果逗号表
2023-08-15
python正则表达式之作业计算器
作业:计算器开发
实现加减乘除及拓号优先级解析
用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等
2022-06-04
2023-10-07
Python运算符与表达式是什么
今天就跟大家聊聊有关Python运算符与表达式是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Python运算符与表达式。什么是运算符:运算符用于执行程序代码运算,会针对一个以上
2023-06-04
2024-04-02