分类：电脑/网络-程序设计-数据库
问题：请教编写数据库程序题设计算法，判断一个算术表达式的圆括号是否正确 
算法，判断一个算术表达式的圆括号是否正确配对！谢谢！
回答：主要部分如下:tydef char StackItem;typedef struct astack *Stack;typedef struct astack{  int top;  int maxtop;  StackItem data;}Astack; void aaa(char *expr){ int i,n;Stack ss=StackInit();/*初始化栈*/ n==strlen(expr);/*计算出字符长度*/for(int i=1;i<=n;i++){ if(expr[i-1]=='(') Push(i,ss);/*发现左符号则进行进栈*/ else if(expr[i-1]==')'){ if(StackEmpty(ss)) printf("位置%d处的右括号不匹配\n",i); else printf("%d %d\n",Pop(ss),i);}}while(!StackEmpty(ss)) printf("位置%d处的左括号不匹配\n",Pop(ss));}Stack StackInit(int size) /*初始话栈*/{ Stack S=(Stack)malloc(sizeof (*S));  S->data=(StackItem)malloc(size*sizeof(StackItem));  S->maxtop=size;S->maxtop=size;S->top=-1;return S;}int StackEmpty(Stack S)/*判断是否是空栈*/{ return S->top<0;}void Push(StackItem x,Stack S) /*进栈*/{ if(StackFull(S)) Error("Stack is full");else S->data[++S->top]=x;}StackItem Pop(Stack S) /*抛栈*/{ if(StackEmpty(S) Error("Stack is empty"));else return S->data[S->top--];}int StackFull(Stack S) /*判断是否满栈*/{ return S->top>=S->maxtop;}对这段有什么疑问可直接 Q  63216358 希望多交流些学习的问题