例如对如下的表达式求值:
4+2*3-10/5,注意是有优先级顺序的。
我们首先定义算符优先关系如下表:
注意这个表和我们所掌握的算数定义不同,如+和-是的优先级关系不是同等。
其中,#为终止符。
接着,我们预定义两个辅助函数:
Precede(opr1, opr2),比较两个运算符opr1和opr2,如果opr1优先级大于opr2,返回'>',小于返回'<',相等返回'='。
我们使用两个栈模拟:OPTR存放寄存[......]
例如对如下的表达式求值:
4+2*3-10/5,注意是有优先级顺序的。
我们首先定义算符优先关系如下表:
注意这个表和我们所掌握的算数定义不同,如+和-是的优先级关系不是同等。
其中,#为终止符。
接着,我们预定义两个辅助函数:
Precede(opr1, opr2),比较两个运算符opr1和opr2,如果opr1优先级大于opr2,返回'>',小于返回'<',相等返回'='。
我们使用两个栈模拟:OPTR存放寄存[......]