码迷,mamicode.com
首页 > 其他好文 > 详细

前缀表达式求解

时间:2014-10-26 11:43:09      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:blog   http   ar   strong   sp   on   问题   log   html   

问题描述:

  前缀表达式也叫波兰表达式,是将操作符前置的一种写法。

  中缀到前缀示例:

    ( 4 + 2 ) * ( 3 + 6 ) =>  * + 4 2 + 3 6

    (3 + 4 / 2) - 5 => - + 3 / 4 2 5

 

思路1(递归):

  1. 从左向右扫描

  2. 因为前缀表达式里都是双目运算符,且没有括号,所以遇到操作符可以递归求解,例如遇到乘号:

    case ‘*‘:

      return exp() * exp();

 

思路2(栈):

  1. 维护数字栈

  2. 从右向左扫描,遇到数字则入栈,遇到符号则出栈两个数字,计算后再入栈新数字,前缀表达式与后缀表达式求法对称,所以直接按后缀法相反方向求解即可。

 

 

转载请注明引用自:

  http://www.cnblogs.com/breakthings/p/4051773.html 

前缀表达式求解

标签:blog   http   ar   strong   sp   on   问题   log   html   

原文地址:http://www.cnblogs.com/breakthings/p/4051773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!