啥也不多说直接上代码
#include <stdio.h>
typedef char ElemType;
#define MaxSize 50
typedef struct{
ElemType data[MaxSize];
int top;
}SqStack;
void InitStack(SqStack &S){
S.top=-1;
}
bool SatckEmpty(SqStack &S){
if(S.top==-1)
return true;
else
return false;
}
bool Push(SqStack &S,ElemType x){
if(S.top==MaxSize-1)
return false;
S.data[++S.top]=x;
return true;
}
bool Pop(SqStack &S,ElemType &x){
if(S.top==-1)
return false;
x=S.data[S.top];
S.top=S.top-1;
return true;
}
bool breaketCheck(char str[],int length){
SqStack S;
InitStack(S);
for(int i=0;i<=length;i++){
if(str[i]=='(' || str[i]=='{' || str[i]=='['){
Push(S,str[i]);
}else{
char topElem;
Pop(S,topElem);
if(str[i]==')' && topElem!='(')
return false;
if(str[i]=='}' && topElem!='{')
return false;
if(str[i]==']' && topElem!='[')
return false;
}
}
return SatckEmpty(S);
}
int main(){
char a[10];
int length=10;
printf("请输入5对括号\n");
for(int i=0;i<=10;i++)
{
scanf("%c",&a[i]);
}
if(breaketCheck(a,length)){
printf("括号匹配成功\n");
}else{
printf("括号匹配失败\n");
}
for(int i=0;i<=10;i++)
{
printf("%c\n",a[i]);
}
}
运行结果
请输入5对括号
[]{([])[]}
括号匹配成功
[
]
{
(
[
]
)
[
]
}
|