两个要点
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
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容猜你喜欢
AI推送时光机python四则运算表达式求值的方法
后端开发2023-07-02
python四则运算表达式求值示例详解
后端开发2024-04-02
java算术表达式求值怎么写
后端开发2023-10-23
Python正则表达式初识(四)
后端开发2023-01-31
linux中awk、正则表达式、正则运算符怎么用
后端开发2023-06-13
C++表达式求值详解
后端开发2024-04-02
正则表达式-问号的四种用法
后端开发2023-09-02
c语言逻辑表达式的运算规则是什么
后端开发2023-08-16
正则表达式的运行时优化
后端开发2024-02-11
Python for Informatics 第11章之正则表达式(四)
后端开发2022-06-04
关于c语言逗号表达式的运算规则知识点
后端开发2023-08-15
C#运算符表达式的使用
后端开发2023-06-18
C++中的运算符和表达式
后端开发2024-04-02
C语言运算符与表达式
后端开发2024-04-02
Python -- 三元表达式(三目运算
后端开发2023-01-31
python正则表达式之作业计算器
后端开发2022-06-04
运算符、表达式和内置对象
后端开发2023-10-07
咦!没有更多了?去看看其它编程学习网 内容吧