建一个帖来保存代码
2026-01-10 15:05:28
发布于:江苏

中缀转前缀
#include<bits/stdc++.h>
using namespace std;
stack<char>s;
char ans[109],str[109];
int idx=0;
int level(char s) {
if(s=='+'||s=='-')return 1;
else if(s=='*'||s=='/')return 2;
}
int main() {
cin>>str;
for(int i=0; str[i]!='\0'; i++) {
//1. 遇到操作数
if(str[i]>='a'&&str[i]<='z'){
ans[idx++]=str[i];
}
//2.遇到运算符
else if(str[i]=='+'||str[i]=='-'||str[i]=='*'||str[i]=='/') {
if(s.empty()||level(str[i])>level(s.top())) {
s.push(str[i]);
} else {
while(!s.empty()&&level(s.top())>level(str[i])) {
if(s.top()=='(') break;
ans[idx++]=s.top();
s.pop();
}
s.push(str[i]);
}
} else { //3.遇到界限符
if(str[i]=='(')s.push(str[i]);
else if(str[i]==')') {
while(s.top()!='(') {
ans[idx++]=s.top();
s.pop();
}
s.pop();
}
}
}
while(!s.empty()) {
ans[idx++]=s.top();
s.pop();
}
cout<<ans;
return 0;
}
全部评论 1
// cccccccccccccc sssssssssssss gggggggggggggg oooooooooo !!!!!! // ccccccccccccccc ssssssssssssss ggggggggggggggg oooooooooooooo !!!!!! //cccc ssss gggg ooooo ooooo !!!!!! //ccc ssss gggg oooo oooo !!!!!! //ccc ssssssssssss gggg ggggggg oooo oooo !!!!!! //ccc ssssssssssss gggg ggggggggg oooo oooo !!!!!! //ccc ssss gggg g gg gg oooo oooo !!!! //cccc ssss gggg gg gg ooooo ooooo // ccccccccccccccc ssssssssssssss ggggggggggg gg oooooooooooooo !!!! // cccccccccccccc sssssssssssss gggggggggg gg oooooooooo !!!!2026-01-03 来自 江苏
0















有帮助,赞一个