calculate reverse polish notation

来源:互联网 发布:淘宝平面男模特动作 编辑:程序博客网 时间:2024/06/05 05:54
#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;}