bool isValid(char* s)
{ST st;StackInit(&st);while (*s) //遍历 -- 与\0终止{//是左括号 压栈if (*s == '(' || *s == '[' *s == '{'){StackPush(&st, *s);++s;}else{//应对样例: ’]'if (StackEmpty(&st)){StackDestroy(&st);return false;}//不是左括号 应该就是右括号 //取栈顶(取的是先前压栈的左括号)//取完即Pop -- 匹配完就Pop STDataType top = StackTop(&st);StackPop(&st);if ((top == '{' && *s == '}')|| (top == '[' && *s == ']')|| (top == '(' && *s == ')')){++s;}else{stackDestroy(&st);return false;}}}bool ret = StackEmpty(&st);StackDestroy(&st);//栈不为空 还有数据未匹配 返回假return ret;
}