表达式树—中缀表达式转换成后缀表达式(一)
前缀、中缀、后缀表达式的转换举例
- 前缀表达式:/+A*BCD。
- 中缀表达式:A+B*C/D。
- 后缀表达式:ABC*+D/。
中缀表达式转换后缀表达式算法
- 将栈初始化为空栈;
- 从左到右扫描表达式的每一个字符,执行下面操作:
2.1 遇到操作数:直接输出(添加到后缀表达式中)
2.2 栈为空时,遇到运算符,直接入栈
2.3 遇到左括号:将其入栈
2.4 遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。
2.5 遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈
2.6 最终将栈中的元素依次出栈,输出。
例如:(A+B*C)/D
参考:http://www.cnblogs.com/mygmh/archive/2012/10/06/2713362.html
一直特立独行的二本僧,书写属于他的天空
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步