作业帮 > 综合 > 作业

(C语言中)逆波兰算法(及计算器)

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/10/01 12:13:57
(C语言中)逆波兰算法(及计算器)
Q.1:用reverse Polish notation 表示12+3 是否是 "123+" 如果是,不是和1 + 23的表示 相冲?(为了防止相冲,各个数字间是否需要特定符号隔开?)
Q.2:(Q.1 得到答复后再问)
(C语言中)逆波兰算法(及计算器)
a+b ---> a,b,+
a+(b-c) ---> a,b,c,-,+
a+(b-c)*d ---> a,b,c,-,d,*,+
a+d*(b-c)--->a,d,b,c,-,*,+
a=1+3 ---> a=1,3 +
它的优势在于只用两种简单操作,入栈和出栈就可以搞定任何普通表达式的运算.其运算方式如下:
如果当前字符为变量或者为数字,则压栈,如果是运算符,则将栈顶两个元素弹出作相应运算,结果再入栈,最后当表达式扫描完后,栈里的就是结果.