逆波兰表达式的一个问题
逆波兰表达式中没有办法区分“-”(减号)与“-”(负号)该怎么解决?
是不是该在此时判定栈是否为空(空的时候为负号,不空为减号) 除非像CASIO里面一样,从新创建一个字符集,连科学函数都当成字符……(负号与减号不是同一个字符)
(经过我的测试,在转换为逆波兰表达式的时候想实现 log 3*4+2=log(3*4)+2的效果(与计算器的判定相同),居然要把log(包括其他函数)的优先级调到乘除以下,无语) 没人吗 不懂…… 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 + 在我的数学观念中,逆波兰表达式使用困难。 在我的数学观念中,逆波兰表达式使用困难。
疯不狂 发表于 2010-10-6 10:38 http://www.cncalc.org/images/common/back.gif
对于计算机来说,逆波兰表达式更易于计算
有兴趣的可也去翻翻《编译原理》 绝对习惯algebra
《编译原理》还不如《算法导论》 绝对习惯algebra
《编译原理》还不如《算法导论》
imath 发表于 2010-10-6 16:55 http://www.cncalc.org/images/common/back.gif
废话,你找的出来更经典的书吗
页:
[1]