字符串公式解析器——使用“逆波兰式算法”及C#实现

公司做数据的前前后后也写了好几个小程序了,后续可能还有就想着做一个统一的,进行数据计算,好久没写blog l ,一时兴起整理一下:

逆波兰式也叫后缀表达式,如:a+b,这是中缀表达式,写成后缀表达式就是:ab+,使用逆波兰式的好处是有利于计算机运算。当计算机遍历一个逆波兰式时,从式中取出数字压栈,当遇到一个运算符,就将栈顶的两个数进行运算,然后将运算结果压栈,再继续遍历逆波兰式后面的元素。这样,计算机就不需要考虑中坠表达式中的括号、运算顺序等,从而有利于计算机运算。人工将普通表达式转换为逆波兰式时,方法例如:  (a+b)*c-(a+b)/e的后缀表达式为:   

  (a+b)*c-(a+b)/e  
  →((a+b)*c)((a+b)/e)-  
  →((a+b)c*)((a+b)e/)-  
  →(ab+c*)(ab+e/)-  
  →ab+c*ab+e/-  

之前是不知道什么叫逆波兰式,也是百度了各个大神们的方法。找到一个链接还不错点此


目前只做到了简单的+-*/,括号,和 一些exp(),log(),pow(,),sin()等数学函数,对于复杂的计算还未实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值