Java 未省略括号的中序表达式转后序表达式
2022/1/16 12:03:43
本文主要是介绍Java 未省略括号的中序表达式转后序表达式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java 未省略括号的中序表达式转后序表达式
思路:
- 用一个栈暂存操作符,一个空白字符串
str
在读取中序的过程中拼接成后序表达式 - 顺序读取中序表达式
- 遇到左括号,不执行任何操作
- 遇到操作数,拼接在
str
之后 - 遇到右括号,从栈中弹出一个操作符拼接在
str
之后
实现:
public static String infixToPostfix() { Stack<String> stack = new Stack<>(); String tmp = ""; Scanner s = new Scanner(System.in); while(s.hasNext()) { String str = s.next(); if(str.equals("+") || str.equals("-") || str.equals("*") || str.equals("/")) { stack.push(str); }else if(str.equals("(")) { }else if(str.equals(")")) { if(stack.isEmpty()) throw new NoSuchElementException("Stack underflow"); tmp += stack.pop() + " "; }else { tmp += str + " "; } } return tmp; }
中序表达式中一对括号构成的内容和后序表达式中两个操作数加上紧随其后的一个操作符都可以看成是整个表达式中的一个操作数
参考资料:
[1] Robert Sedgewick and Kevin Wayne -> https://algs4.cs.princeton.edu/13stacks/InfixToPostfix.java.html
这篇关于Java 未省略括号的中序表达式转后序表达式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-09百万架构师第十二课:源码分析:Spring 源码分析:Spring系统概述及IOC实现原理|JavaGuide
- 2025-01-08如何用关键链方法突破项目管理瓶颈?
- 2025-01-08电商人必看!6 款提升团队协作与客户满意度软件!
- 2025-01-08电商团队管理混乱?快用这 6 款软件优化协作流程!
- 2025-01-08短剧制作效率低?试试这5款任务管理工具
- 2025-01-08高效应对电商高峰,6 款团队协作软件大揭秘!
- 2025-01-08为什么外贸人都爱上了在线协作工具?
- 2025-01-08提升工作效率,从这些任务管理工具开始
- 2025-01-08新年电商订单暴增,必备的 6 款可视化协作办公软件有哪些?
- 2025-01-08短剧制作经理必备技能与工具全解析