例如一个表达式 5*(6+3)/ 3 -1
输出为:563+*3/1-
规则:
1.对于遇到的数字直接输出
2.在运行中遇到运算符号要入栈,入栈的规则:
2.1 例如上题中 * 直接入栈
2.2 ( 时直接入栈
2.3 + 时直接入栈
2.4 )时,现在栈里有*( + ,右括号将与之对应的左括号之间的符号直接弹出栈,那么现在输出的就是 563+
2.5 / 时,现在栈里只有 * ,他们进行比较后,优先级相同,那么就将*弹出,将/入栈,那么现在输出的就是:563+*
2.6 -时,现在栈里只有/,-的优先级小于/,那么就是将/弹出,将-入栈,那么现在输出的就是:563+*3/
2.7 最后将-弹出,输出为:563+*3/1-
最后补充:对栈里的符号进行比较时,如果优先级大于栈里的,则直接入栈,其他情况下均为:先弹出再入栈。