今天讲了栈和深搜,顺带讲了中缀表达式转后缀表达式,弄个简单点的代码(s1:中缀,s2:后缀,a:栈,运算符:|、&、(),先&后|):
for(int i=0;i<s1.size();i++){
if(s1[i]=='0'||s1[i]=='1'){
s2+=s1[i];
}
else {
while(!a.empty()&&((a.top()=='&'&&s1[i]=='|')||(a.top()=='|'&&s1[i]=='|')||(a.top()=='&'&&s1[i]=='&')||s1[i]==')'&&a.top()!='(')){
s2+=a.top();
a.pop();
}
if(!a.empty()&&s1[i]==')'&&a.top()=='('){
a.pop();
}
if(s1[i]!=')')a.push(s1[i]);
}
}
while(!a.empty()){
s2+=a.top();
a.pop();
}
day6了