美文网首页
四则运算表达式解析

四则运算表达式解析

作者: 纵横而乐 | 来源:发表于2015-07-22 15:39 被阅读520次

    四则运算比如:a + b*c +( d - e)

    编译器的做法一般是将其解析成逆波兰式之后再进行运算

    解析过程如下:

    依次取经过四则运算之后的 四则运算表达式 中的各个元素x

    分析规则:(需要使用到 存在逆波兰式结果的栈 结果栈和临时存放运算符的栈 运算符栈)

    1 如果x为操作数则直接压入结果栈

    2 如果x为操作符则分析规则如下:

       a 如果x为"(", 则直接将其压入运算符栈

       b 如果x为")",则将距离其最近的运算符依次压入结果栈中,并将"("丢弃

       c 如果x不为"("或者")":

          如果运算符栈为空,则直接将x入运算符栈

          如果运算符栈非空,若x比运算符栈顶运算符的优先级高,则将x入栈,否则将运算符栈中优先级高于x的运算符依次出栈直到遇到优先级小于x的运算符

    3 如果到达表达式的末尾,则将运算符栈中的所有运算符依次压入结果栈中

    相关文章

      网友评论

          本文标题:四则运算表达式解析

          本文链接:https://www.haomeiwen.com/subject/zhgpqttx.html