如何将中缀表达式转化为后缀表达式
从头到尾读取中缀表达式的每个对象,并处理
1.运算数:直接输出到后缀表达式
2.左括号:压入堆栈
3.右括号:将栈顶的运算符(不含右括号)弹出并输出,至遇到左括号(左括号出栈,不输出到后缀表达式)
4.运算符:
- 若优先级大于栈顶运算符,压栈
- 若优先级小于栈顶运算符,将栈顶运算符弹出并输出,再比较新的栈顶运算符,直到该运算符大于栈顶运算符优先级为止,然后将该运算符压栈
- 若优先级相同,则弹出栈顶运算符并输出,将自身压栈
- 若各对象处理完毕,将堆栈中存留的运算符一并输出
eg : (2*(9+6/3-5)+4)
输出2 9 6 3/+5-*4+