用C++写了一个表达式求值的程序 可运行出错 望高手赐教。

来源:百度知道 编辑:UC知道 时间:2024/06/20 13:45:08
表达式求值是用栈实现的。算法为“算符优先法”为实现这种算法,使用了两个工作栈。一个称作OPTR,用以寄存运算符;另一个称做OPND,用以寄存操作数或运算结果。算法的基本思想是:
(1)首先置操作数栈为空栈,表达式起始符“#”为运算符栈的栈底元素;
(2)依次读入表达式中的每个字符,若是操作符则进OPND栈,若是运算符则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕(即OPTR栈的栈顶元素和当前读入的字符均为“#”)

源程序在空间的日志!谢谢了。

不是高手,正好我们在学编译原理,算符优先法还没上,但是快了,调试了下你的代码,呵呵,小错误比较多,修改后的程序在我的空间日志~~

这属于编译器问题,你可以参考解释执行编译器的实现方式,程序我看看。