c语言实现的括号匹配算法  无括号算术表达式处理算法
#include "seqstack.h"
#include "stdio.h"
void BracketMatch(char *str);
void BracketMatch(char *str) /* str[]中为输入的字符串,利用堆栈技术来检查该字符串中的括号是否匹配*/
{
 SeqStack S; 
 int i; 
 char ch;
 
 InitStack(&S);
 
 for(i=0; str[i]!='\0'; i++)   /*对字符串中的字符逐一扫描*/
 {
     switch(str[i])
     {
  case '(':
  case '[':
  case '{':
   Push(&S,str[i]);  
         break;
       case ')':
       case ']':
       case '}':
   if(IsEmpty(&S))
      { 
    printf("\n右括号多余!");  
          return;
      }
   else
   {
    GetTop(&S,&ch;);
    if(Match(ch,str[i]))  /*用Match判断两个括号是否匹配*/
     Pop(&S,&ch;);      /*已匹配的左括号出栈*/
             else
          {
              printf("\n对应的左右括号不同类!");  
              return;
          }
   }
  }/*switch*/
 }/*for*/
 if(IsEmpty(&S))
  printf("\n括号匹配!");
 else
  printf("\n左括号多余!");
}
void main()
{
 char str[100];
 printf("please input:");
 gets(str);
 BracketMatch(str);
}
                                    
                                    
                                        
                                            1