中缀表达式
前缀表达式
后缀表达式
后缀表达式求值
建立一个用于存数的数组,如果遇到一个数就入栈,如果遇到运算符,就取出栈顶的两个元素进行计算后入栈,最后栈中恰好剩下一个数,就是该后缀表达式的结果。
中缀表达式转后缀表达式
- 建立一个用于存运算符的栈,逐一扫描中缀表达式中的元素。
- 如果遇到一个数,输出该数
- 如果遇到左括号,把左括号入栈
- 如果遇到右括号,不断取出栈顶并输出,直到栈顶为左括号,然后把左括号出栈
- 如果遇到运算符,只要栈顶符号的优先级不低于新符号,就不断取出栈顶并输出(栈里面的优先级是严格单调递增的)
- 优先级:( ) > ^ > * / > + -
如果输入的+、-为单目运算,改为0与运算对象在前,运算符在后,例如:-5,转化为:05-
中缀表达式的递归法求值