趁着复习把课上的作业和代码上传上来嘿嘿嘿,这个系列的代码都是自己写的或者老师教学用的可能内存管理上有点小瑕疵,但是算法理解还是不错的!本系列所有代码在dev-cpp上可以跑通~
描述:
输入(){}[]等括号,看括号是否匹配。
思路:
左括号入栈,右括号看栈顶是否对应的左括号,是则出栈(如果有东西就一直出栈到遇到左括号),如果发现不对应就是不匹配。
代码:
#include<stdio.h>
int main(){
char s;
char Q[101];
int top=0;
do{
scanf("%c",&s);
if(s=='('||s=='['){
Q[top++]=s;
//printf("%c",Q[top-1]);
}
else if(s==')'){
if(Q[--top]!='('){
break;
}
}
else if(s==']'){
if(Q[--top]!='['){
break;
}
}
}
while(s!='\n');
if(top==0){
printf("1");
}
else{
printf("0");
}
return 0;
}
出栈的话是Stack[--top],入栈的话是Stack[top++]。