#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct stack {
int top;
int msize;
char* element;
}stack;
stack* creat(stack*s,int msize) {
s->msize = msize;
s->element = (char*)malloc(sizeof(char) * msize);
s->top = -1;
return s;
}
void push(stack* s, char x) {
s->top++;
s->element[s->top] = x;
}
int cheack(stack* s, char* l) {
int i = 0, count = 0, j=-1;
for (i = 0; i < strlen(l)+1; i++) {
if (l[i] == '('||l[i]==')') {
push(s, l[i]);
count++;
}
}
for (i = 0; i<count; i += 2) {
if (s->element[i] == '(' && s->element[i + 1] == ')')
j = 1;
else
j = -1;
}
if(s->element[0]=='(')
printf(" %c", s->element[0]);
return j;
}
int main() {
int msize;
scanf_s("%d", &msize);
stack* s = (stack*)malloc(sizeof(stack));
s->msize = msize;
s->element = (char*)malloc(sizeof(char) * msize);
s->top = -1;
char l[5];
scanf_s("%s",l);
printf("%d",cheack(s, l));
return 0;
}
利用栈检查表达式中括号是否配对(c)
最新推荐文章于 2022-10-26 21:28:22 发布