本文共 1733 字,大约阅读时间需要 5 分钟。
中缀表达式就是我们平时书写的式子比如 2 * 3 + 5 - 4 * (2 + 3)
后缀表达式又叫做逆波兰表达式表达式,可以让计算机快速求出一个式子的值。主要通过栈来辅助计算。e.g 1 2 3 4 + 8 * + 3 + *
eg. a + b * c + (d * e + f) * g
#includeusing namespace std;char exp[10000];int op(int a, int b, char op){ if (op == '+') return a + b; else if (op == '-') return a - b; else if (op == '/') return a / b; else return a * b;}int com(){ int i = 0; int stack[1000]; int top = -1; while (exp[i] != '\0') { if (exp[i] >= '0' && exp[i] <= '9') { stack[++top] = exp[i] - '0'; } else { int temp = op(stack[top--], stack[top--], exp[i]); stack[++top] = temp; } i++; } return stack[top];}int main(){ cin >> exp; cout << com() << endl; return 0;}
转载地址:http://wgaq.baihongyu.com/