题目有效的括号
思路
- 利用栈将括号进行配对
- 如果是左括号就压入栈
- 如果遇到右括号,就取栈顶左括号,看是不是与该右括号配对,如果匹配,就继续将字符指针后移,继续判断。但是有个其他情况取到右括号,但是栈为空,也说明没有左括号与他匹配,所以这种情况返回FALSE。
20221030_170221
1.首先需要自己写一个栈;
typedef char STDataType;
//支持动态增长的栈
typedef struct Stack
{
STDataType* a;
int top;//记录栈顶
int capacity;//记录栈容量
}ST;
//初始化栈
void StackInit(ST* ps)
{
assert(ps);
ps->a = NULL;
ps->capacity = ps->top = 0;//先初始化为空,后续进行扩充
}
//销毁栈
void StackDestroy(ST* ps)
{
assert(ps);
free(ps->a);
ps->a = NULL;
ps->top = ps->capacity = 0;
}
//压入数据到栈
void StackPush(ST* ps, STDataType x)
{
assert(ps);
if (ps->top