表达式求值思路

来源:互联网 发布:航天金穗软件 编辑:程序博客网 时间:2024/06/09 19:34

对一个表达式进行求值,表达式都是用中缀表达式来表示的,因此需要两步:1.利用一个符号栈,把中缀表达式变为后缀表达式;2.在利用一个栈来计算后缀表达式。

1.具体操作:用一个栈来存中缀表达式中的符号,遇到数值时直接输出就好,这里符号进入栈要遵循几个原则。a.做括弧的优先级最高,当栈顶符号的优先级小于要入栈的符号时,直接将要入栈的符号插到栈顶;b.当栈顶符号的优先级大于或等于要入栈符号的优先级时,则依次弹出栈顶并输出,直到遇到小于要入栈符号的优先级为止(这里有个特例就是左括弧不能弹出,必须遇到右括弧入栈才能弹出,而且弹出后不用输出);c.当右括弧入栈时,会依次弹出栈顶符号,直到弹出左括弧为止;d.当输入完了时,则弹出符号栈中所有的符号。


2.计算后缀表达式:用一个栈,将后缀表达式依次输入栈中,遇到一个符号,弹出符号并弹出两个数字,计算出两个数字后再压入栈中,就这样依次遍历完后缀表达式。


详细步骤可参考:http://blog.csdn.net/mvpsendoh/article/details/6440559

0 0