跪求一个判别表达式中括弧是否正确配对的程序!!!

来源:百度知道 编辑:UC知道 时间:2024/05/13 16:44:28
假设一个算术表达式中包含圆括弧,方括弧和花括弧三种类型的括弧。编写一个判别表达式中括弧是否正确配对的函数correct(exp,tag);其中:exp为字符串类型的变量(可理解为每个字符占用一个数组元素),表示被判别的表达式,tag为布尔型变量。

#include<stdio.h>
#include<stdlib.h>
#define N 5
struct stack{
char*base;
char *top;
int stacksize;
};
void initstack(struct stack *s)
{ s->base=(char*)malloc(10*sizeof(char));
if(!s->base) exit(0);
s->top=s->base;
s->stacksize=10;
return ;
}
void push(struct stack *s,char e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(char*)realloc(s->base,(s->stacksize+N)*sizeof(char));
if(!s->base) exit(0);
s->top=s->base+s->stacksize;
s->stacksize+=N;
}
*s->top++=e;
return ;
}
void pop(struct stack *s)
{ char e;
if(s->top==s->base) return ;
e=*(--s->top); printf("%c\n",e);
return;
}
int brack_test(char*str)

{ char*p;struct s