C++代码:
stack<int>num;
if(tokens.size()==0)
{
return 0;
}
else
{
for(int i=0;i<tokens.size();i++)
{
if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
{
int a=num.top();
num.pop();
int b=num.top();
num.pop();
if(tokens[i]=="+")
{
num.push(a+b);
}
else if(tokens[i]=="-")
{
num.push(b-a);
}
else if(tokens[i]=="*")
{
num.push(a*b);
}
else
{
num.push(b/a);
}
}
else
{
num.push(atoi(tokens[i].c_str()));
}
}
return num.top();
}
利用一个栈作为中间存储计算;