#include <iostream>
#include <stack>
using namespace std;
bool isNumber(char c)
{
if (c >= '0' && c <= '9')
return true;
return false;
}
int calRPN(stack<char>& stk)
{
char top = stk.top();
stk.pop();
if (isNumber(top))
{
return top - '0';
}
else
{
int b = calRPN(stk);
int a = calRPN(stk);
if (top == '+')
return a + b;
else if (top == '-')
return a - b;
else if (top == '*')
return a * b;
else if (top == '/')
return a / b;
}
return -1;
}
int main()
{
stack<char> stk;
stk.push('5');
stk.push('6');
stk.push('+');
stk.push('3');
stk.push('*');
int res = calRPN(stk);
return 0;
}
calculate reverse polish notation
最新推荐文章于 2022-10-27 17:31:32 发布