前缀转中缀(表达式)

问题描述:

  前缀转中缀示例,允许有多余括号:

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

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

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

 

思路1(递归):

  1. 从左向右扫描

  2. 遇到操作符,则递归求解,返回新字符串,遇到数字,则直接返回数字串,例如:

    case '*':

      return "(" + exp() + "*" + exp() + ")";  //注意加括号,保证中缀表达式能正确求解

    default:

      return next_str;

 

思路2(树):

  1. 从左向右扫描

  2. 根据操作符,不断构造子树

  3. 中序遍历树,并输出,即可得到中缀表达式

 

转载请注明引用自:

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

转载于:https://www.cnblogs.com/breakthings/p/4051912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值