P1449 后缀表达式(C++_模拟_栈)
题目描述 所谓后缀表达式是指这样的一个表达式:式中不再引用括号,运算符号放在两个运算对象之后,所有计算按运算符号出现的顺序,严格地由左而右新进行(不用考虑运算符的优先级)。 如:3*(5–2)+7对应的后缀表达式为:3.5.2.-*7.+@。’@’为表达式的结束符号。‘.’为操作数的结束符号。 输入格式 输入:后缀表达式 输出格式 输出:表达式的值 输入输出样例 输入 #1 3.5.2.-*7.+@ 输出 #1 16 说明/提示 字符串长度,1000内。 思路 放在栈里面就可以完美模拟~ 源码 # include <bits/stdc++.h> using namespace std ; int main ( ) { int s = 0 , a , c ; char temp ; stack < int > b ; while ( 1 ) { cin >> temp ; if ( temp == '@' ) break ; switch ( temp ) { case '+' : a = b . top ( ) ; b . pop ( ) ; c = b . top ( ) ; b . pop ( ) ; b . push ( a + c ) ; break ; case '-' : a = b . top ( ) ; b . pop ( ) ; c = b . top ( ) ;