输入的数字大小不超过 ,数字和符号的个数不超过 。
方法提示:
回到这个题,如果使用栈解决这个问题,只需要以下三步即可:
1、对前缀表达式进行从右至左依次扫描,当遇到数字时,将数字压入堆栈,遇到运算符时,弹出
栈顶的两个数。
2、用运算符对它们做相应的计算(栈顶元素 运算符 次顶元素),并将结果入栈。
3、重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果。
例如,对于前缀表达式:- × + 2 3 4 5
1、从右至左扫描,将5、4、3、2压入堆栈。
2、遇到 + 运算符,因此弹出 2 和 3( 2 为栈顶元素,3 为次顶元素,注意与后缀表达式做比较),
计算出 2 + 3 的值,得 5,再将 5 入栈。
3、接下来是 × 运算符,因此弹出 5 和 4 ,计算出 5 × 4 = 20,将 20 入栈。
4、最后是 - 运算符,计算出 20 - 5 的值,即 15,由此得出最终计算结果。