中缀表达式(中缀记法)
前缀表达式(前缀记法、波兰式)
前缀表达式的运算符位于操作数之前。
从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 op 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。
前缀表达式人工转换的方法,假设有一个中缀表达式a+b*c-(d+e)
-
首先将这个中缀表达式的所有运算加括号((a+(b*c))-(d+e))
-
然后将所有运算符放到括号后面,这样就变成了-(+(a*(bc))+(de) )
-
把所有括号去掉-+a*bc+de,最后得出的结果就是后缀表达式
后缀表达式(后缀记法、逆波兰式)
后缀表达式运算符位于操作数之后。
从左至右扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(次顶元素 op 栈顶元素),并将结果入栈;重复上述过程直到表达式最右端,最后运算得出的值即为表达式的结果。
后缀表达式人工转换的方法,假设有一个中缀表达式a+b*c-(d+e)
-
首先将这个中缀表达式的所有运算加括号((a+(b*c))-(d+e))
-
然后将所有运算符放到括号后面,这样就变成了((a(bc)* )+ (de)+ )-
-
把所有括号去掉abc*+de±,最后得出的结果就是后缀表达式