中缀转后缀
2025-08-04 14:25:57
发布于:浙江
2阅读
0回复
0点赞
s表示被转的表达式
调用:string ans=translate(int 0,int s.size());
string s;
string translate(int i,int e){
stack <char> q;
string ans;
bool f;
for(int j=i;j<e;++j){
if(s[j]=='0'||s[j]=='1'){
ans+=s[j];
if(f){
if(!q.empty()){
ans+=q.top();
q.pop();
}
}
f=1;
//cout<<sum<<" ";
}
else if(s[j]=='('){
int sum=1;
for(int v=j+1;v<e;++v){
if(s[v]=='(')sum++;
else if(s[v]==')'){
sum--;
if(sum==0){
ans+=translate(j+1,v);
j=v-1;
break;
}
}
}
continue;
}
else if(s[j]==')'){
//cout<<sum<<"qqqq";
if(f){
if(!q.empty()){
ans+=q.top();
q.pop();
}
}
f=1;
}
else{
q.push(s[j]);
}
}
return ans;
}
这里空空如也
有帮助,赞一个