算法 表达式求值

表达式求值

  • 简介

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

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

  • 规则   

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

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

    运算符的优先级关系

    算法 表达式求值_第1张图片

 

  • 执行流程

算法 表达式求值_第2张图片





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

你可能感兴趣的:(算法 表达式求值)