规则:
当读到一个操作数时,立即把它放到输出中。当读到操作符时不立即输出,从而必须先存在某个地方。正确的做法是将已经见到过的操作符放进栈中而不是放到输出中。当遇到左括号时我们也要将其推入栈中。如果遇到一个右括号,我们就弹出栈中的符号并输出,直到遇到对应的左括号,并且这个左括号只弹出,不输出。
存入栈中的操作符的规则:优先级必须保持从上到下为高到低。遇到一个操作符时,我们从栈中弹出元素,直到发现有比遇到的操作符优先级更低的元素为止。例如:如果我们遇到一个*,而栈中此时的元素为 +,那我们就可以把* 存入栈中,但是如果我们遇到的是+,而此时栈中的顶元素为* +,优先级大于+,那我们就先把* +