diff --git a/栈/括号匹配.c b/栈/括号匹配.c new file mode 100644 index 0000000..c353945 --- /dev/null +++ b/栈/括号匹配.c @@ -0,0 +1,80 @@ +#include +#include +#include +#include +#define MaxSize 100 //定义栈中元素最大个数 + +typedef struct{ + char data[MaxSize]; + int top; +}SqStack; + +//初始化栈 +void InitStack(SqStack *S){ + S->top = -1; +} +//判断栈是否为空 +bool IsEmpty(SqStack S){ + if(S.top == -1){ + return true; + } + return false; +} +//新元素入栈 +void Push(SqStack *S,char x){ + if(S->top == MaxSize-1){ + printf("栈已满"); //栈已满 + return; + } + S->top += 1; + S->data[S->top] = x; +} +//栈顶元素出栈,用x返回 +void Pop(SqStack *S,char *x){ + if(S->top == -1){ + printf("栈已满"); + return; + } + *x = S->data[S->top]; + S->top -= 1; +} +//匹配算法 +bool bracketCheck(char str[],int length){ + SqStack S; + InitStack(&S); //初始化栈 + for(int i=0;i