《数据结构》括号匹配问题的实现

main.cpp:主程序

//Stack.h参见本分类其它栈问题的记录。

#include "../第三章 顺序栈的基本操作/Stack.h"

using namespace std;
int main()
{
 Stack S;
 InitStack(S);
 int tmp;
 char c;
 while((c=getchar())!='\n')
 {
  switch(c)
  {
  case '[':
  case '(':
  case '{':
  Push(S,c);
  break;
  case ']':
  case '}':
  case ')':
  Pop(S,tmp);
  if(!((tmp=='['&&c==']')||(tmp=='{'&&c=='}')||(tmp=='('&&c==')')))
  {
   cout<<"不匹配";
   return 0;
  }
  break;
  }
 }
 if(IsEmpty(S)==true)
  cout<<"匹配";
 else
  cout<<"不匹配";
}

Leave a Reply

Your email address will not be published. Required fields are marked *