算法 表达式求值

表达式求值

  • 简介

  表达式求值:对表达式进行求值操作,也就是实现一个计算器功能.如输入:(5+2)-2*3,得出1.

  正常面试中,只会设计简单的四则运算: +-*/()

  • 规则   

  表达式求值的实现方式是通过:双栈(操作数栈,运算符栈)的数据结构实现.    
  实际运算时,根据运算符的优先级控制入栈和运算操作.

  运算符优先级:栈顶运算符优先级和待入栈运算符优先级比较   
    小于:待入栈运算符入栈;    
    大于:先出栈计算,待运算符再入栈;   
    忽略左括号;    
    右括号:出栈运算再入栈;

    运算符的优先级关系

    

 

  • 执行流程





参考资料:   
Dijkstra双栈算法表达式求值——《算法4》   
拜托,面试别再问我表达式求值了!!!

posted @ 2019-04-23 10:50  橙木鱼  阅读(440)  评论(0编辑  收藏  举报