AcWing 3302 表达式求值 (栈)
发布时间
阅读量:
阅读量
原题链接:https://www.acwing.com/problem/content/3305/
解题思路:构建用于计算中缀表达式的树状结构,其中叶子节点代表具体的数值,而非叶子节点则对应运算符号。将运算符号与数值分别存入两个独立的栈结构中,并依照特定顺序进行运算处理。unordered_map作为一种内部采用哈希机制实现的无序容器,可用于设定不同运算符之间的优先级关系。
#include<iostream>
#include<unordered_map>
#include<cstring>
#include<stack>
using namespace std;
stack<int>num;
stack<char>op;
void eval(){
int b = num.top(); num.pop();
int a = num.top(); num.pop();
char q = op.top(); op.pop();
//取出栈内储存的两个实数和一个字符进行运算
int x;
if(q == '+'){
x = a + b;
}
else if(q == '*'){
全部评论 (0)
还没有任何评论哟~
