#include "strack.h"
int main()
{
char e;
char a;
StrackPtr s = InitStrack();//初始化栈
int count = 0;
char string[50] = {0};
gets(string);
int n = strlen(string);
//printf("%d", n);
while (count < n)
{
if (string[count] == '(' || string[count] == ')' || string[count] == '[' || string[count] == ']' || string[count] == '{' || string[count] == '}')
{
switch (string[count])
{
case '(':
PushStrack(s, string[count]);
//puts("111");
break;
case '[':
PushStrack(s, string[count]);
break;
case '{':
PushStrack(s, string[count]);
break;
case ')':
if (!StrackEmpty(s))
{
GetTop(s, &e);
if (e == '(')
{
Pop(s, &a);
}
}
break;
case ']':
if (!StrackEmpty(s))
{
GetTop(s, &e);
if (e == '[')
{
Pop(s, &a);
}
}
break;
case '}':
if (!StrackEmpty(s))
{
GetTop(s, &e);
if (e == '{')
{
Pop(s, &a);
}
}
break;
defaule:
break;
}
}
count++;
}
if (StrackEmpty(s))
{
puts("匹配成功");
}
else
{
puts("匹配失败");
}
system("pause");
return 0;
}
栈的顺序存储 括号匹配
最新推荐文章于 2020-12-27 15:07:06 发布