中缀转化前缀和后缀步骤:
按照运算符的优先级对所有的运算单位加括号 将运算符移动到对应括号的前面(前缀表达式)或后面(后缀表达式) 去掉括号,得到前缀或后缀表达式 示例:
中缀表达式:1+(2+3)×4-5
1)加括号 式子变成 ((1+((2+3)×4))-5)
2)移动运算符
对于前缀表达式,变成了 -(+(1×(+(23)4))5)
对于后缀表达式:变成了((1((23)+4)×)+5)-
3)去掉括号 前缀表达式: - + 1 × + 2 3 4 5 后缀表达式:1 2 3 + 4 × + 5 -
前缀表达式计算方式(波兰表达式)
从右至左扫描表达式
遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 operation 次顶元素),并将结果入栈
重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果
后缀表达式计算方式(逆波兰)
从左至右扫描表达式
遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 operation 栈顶元素 ),并将结果入栈
重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果