使用C++实现逆波兰式的方法-创新互联

这篇文章运用简单易懂的例子给大家介绍使用C++实现逆波兰式的方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

创新互联公司从2013年开始,公司以成都网站制作、做网站、外贸营销网站建设、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户成百上千,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。

(a+b)c的逆波兰式为ab+c,假设计算机把ab+c按从左到右的顺序压入栈中,并且按照遇到运算符就把栈顶两个元素出栈,执行运算,得到的结果再入栈的原则来进行处理,那么ab+c的执行结果如下:

1)a入栈(0位置)
2)b入栈(1位置)
3)遇到运算符“+”,将a和b出栈,执行a+b的操作,得到结果d=a+b,再将d入栈(0位置)
4)c入栈(1位置)
5)遇到运算符“”,将d和c出栈,执行dc的操作,得到结果e,再将e入栈(0位置)


经过以上运算,计算机就可以得到(a+b)*c的运算结果e了。

逆波兰式除了可以实现上述类型的运算,它还可以派生出许多新的算法,数据结构,这就需要灵活运用了。逆波兰式只是一种序列体现形式。

eg:

输入示例

1 2 + 3 4 - *

输出示例

-3

代码

#include 
#include 
#include 
using namespace std;

int main()
{
 string s;
 getline(cin,s);
 int n = s.length();//字符串长度
 stack t;
 for(int i=0;i            
名称栏目:使用C++实现逆波兰式的方法-创新互联
标题URL:http://cdiso.cn/article/gcjeg.html

其他资讯