一、题目
求一个表达式的值,比如9+(3-1)*3+10/2
二、思路
S1.把中缀表达式转换为后缀表达式
S2.根据后比对表达式得到计算结果
三、中缀表达式、后缀表达式
后缀表达式:不包含括号,运算符放在两个运算对象的后面,所有的计算按运算符出现的顺序,严格从左向右进行(不再考虑运算符的优先规则,如:(2 + 1) * 3 , 即2 1 + 3 *
四、中缀转后缀(逆波兰算法)
规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减)则栈顶元素依次出找并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。