表达式求值
1 问题描述
输入为四则运算表达式如(2+3)*(5+7)+9/3,仅由+ - * / ( )构成,没有空格,要求其值。
2 问题分析
有两种方法,一是用递归,将表达式分解为项和因子,再通过递归逐块解决。其中,我们需要清楚的是,表达式为项的加减,项为因子的乘除,因子为数值或带括号的表达式。
第二种方法是通过堆栈,先将表达式转化成后缀表达式,利用栈依次求解。
3 完整代码
① 方法一:
1 问题描述
输入为四则运算表达式如(2+3)*(5+7)+9/3,仅由+ - * / ( )构成,没有空格,要求其值。
2 问题分析
有两种方法,一是用递归,将表达式分解为项和因子,再通过递归逐块解决。其中,我们需要清楚的是,表达式为项的加减,项为因子的乘除,因子为数值或带括号的表达式。
第二种方法是通过堆栈,先将表达式转化成后缀表达式,利用栈依次求解。
3 完整代码
① 方法一: