利用栈实现算术表达式的求值,表达式中可包含加+、减(负)-、乘*、除/、乘方^、括号()运算符,操作数可以为浮点数。
可采用直接求中缀表达式的方法,也可采用先转换成后缀表达式后再求值的方法(参看课件)。
实现时需注意如下:(1)带小数点的数值生成(理解整数数值的生成,小数部分的处理与之类似)。
(2)考虑负号的情况。
负号与减号形式上一样,如何区分?•输入的表达式串中第1个字符是’-’–可断定此’-’是负号•其余的’-’–若紧接在’(’之后的’-’可断定是负号(3)负号的处理•方法1:若已断定是负号,可先压入数值0进入操作数栈,如此,可将负号看作减号。
•方法2:若已断定是负号,则紧接其后的数字字符转换成数值后,要将其对应的相反数(负数)压入操作数栈
2025/1/4 1:25:36
3KB
表示求值
1