其他分享
首页 > 其他分享> > P1449 后缀表达式 栈的应用

P1449 后缀表达式 栈的应用

作者:互联网

栈的应用
当读到的数时入栈,当读到运算符时,对应数据出栈,计算后再入栈,当读到@时,栈顶为本题的解,这里的栈用C++stl的stack容器,简化代码的实现。

//P1449 后缀表达式
#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
typedef long long LL;
stack <LL> sd;
char bds[1001];
int main()
{
	cin>>bds;
	int bdslen=strlen(bds);
	int i=0;
	while (i<bdslen)
	{
		if (bds[i]=='@') break;
		else if (bds[i]=='+')
		{
			int t1,t2;
			t1=sd.top();
			sd.pop();
			t2=sd.top();
			sd.pop();
			sd.push(t1+t2);
			i++;
		}
		else if (bds[i]=='-')
		{
			int t1,t2;
			t1=sd.top();
			sd.pop();
			t2=sd.top();
			sd.pop();
			sd.push(t2-t1);
			i++;
			
		}
		else if (bds[i]=='*')
		{
			int t1,t2;
			t1=sd.top();
			sd.pop();
			t2=sd.top();
			sd.pop();
			sd.push(t1*t2);
			i++;
		}
		else if (bds[i]=='/')
		{
			int t1,t2;
			t1=sd.top();
			sd.pop();
			t2=sd.top();
			sd.pop();
			sd.push(t2/t1);
			i++;
		}
		else
		{
			int t=0;
			while (i<bdslen&&bds[i]>='0'&&bds[i]<='9')
			{
				t=t*10+bds[i]-'0';
				i=i+1;
			}
			sd.push(t);
			i=i+1;
		}
	}
	cout<<sd.top()<<endl;
}

  

标签:当读,后缀,long,P1449,int,bds,include,表达式
来源: https://www.cnblogs.com/smghj/p/15973511.html