bool ValidBrackets(char* str){
Stack stack;
CreateStack(&stack, 50);
char *p;
p=str;
int i=0;
while(p[i]!='s'){
scanf("%c\n",p);
if(p[i]=='('||p[i]=='['){
Push(&stack,p[i]);
}
if(p[i]==')'){
if(IsEmpty(&stack))
return false;
else{
if(stack.values[stack.top]=='(')
Pop(&stack,&stack.values[stack.top]);
else return false;
}
if(p[i]==']'){
if(IsEmpty(&stack))
return false;
else if(stack.values[stack.top]=='['){
Pop(&stack,&stack.values[stack.top]);
}
else return false;
}
i++;
printf("%d",i);
}
if(IsEmpty(&stack))
return true;
else
return false;
}
没有error,但是结果不对。请问一下要怎么改?
代码发全一些,Stack定义、CreateStack函数定义、Push、Pop啥的都没发