数据结构实验之栈与队列四:括号匹配

数据结构实验之栈与队列四:括号匹配

#include 
#include 
#include 

int date[52]; //初始化栈的大小
int main()
{
    char a[55];
    int i,top,base,len;
    while(gets(a)) //在while中输入字符串不用加“!=EOF”
    {
        top=0;
        base=0;
        len=strlen(a);
        for(i=0;iif(a[i]=='('||a[i]=='['||a[i]=='{')
                date[top++]=a[i];  //左括号入栈
            else if((a[i]==')'||a[i]==']'||a[i]=='}'))
            {
               if(top==base)
                    break; //只有右括号,括号不匹配,结束查找
               else
               {
                 if((date[top-1]=='('&&a[i]==')')||(date[top-1]=='['&&a[i]==']')||(date[top-1]=='{'&&a[i]=='}'))
                    date[--top]; //右括号与左括号匹配,左括号出栈
                 else
                    break; //没有与右括号匹配的左括号,括号不匹配,结束查找
               }
            }
        }
        if(top==0&&i==len)
            printf("yes\n"); //栈为空且字符串查找完成
        else
            printf("no\n");
    }
    return 0;
}

你可能感兴趣的:(栈)