(C语言)数据结构之括号匹配的问题?

2025-05-22 22:18:35
推荐回答(1个)
回答1:

//这是我的用STL实现的检查字符串中的几个符号是否匹配的代码

#include

#include

#include

using namespace  std;

void main()

{

     stack  mystackda;  //大括号

     stack  mystackxiao; //小括号

     stack  mystackjian; //尖括号

     char s[30]="ABCD{()PPPL<>()}";

     char  *p=&s[0];

     while( (*p)!='\0' )   //遍历字符串s

     {

         switch(*p)

         {

         case '{':

                  mystackda.push('{');

                     break;

         case '}':

             if (mystackda.empty())

             {

             goto  over;

             }

             mystackda.pop();

             break;

         case '<':

                   mystackjian.push('<');

                 break;

         case '>':

        

             if (mystackjian.empty())

             {

             goto  over;

             }

             mystackjian.pop();

             break;

             case '(':

             mystackxiao.push('(');

            

             break;

         case ')':

            

             if (mystackxiao.empty())

             {

             goto  over;

             }

             mystackxiao.pop();

             break;

            

             }

             p++;

     }

     if (   mystackda.empty()    &&    mystackjian.empty()    &&    mystackxiao.empty()    )

     {

         cout<<"\n字符匹配"<

     }

    else

     {

            over: cout<<"\n字符不匹配"<

     }

    

     system("pause");

}

//【还待优化】


//【望采纳--现在急需分】