// 括号匹配
int matchBracket(char c[])
{
seqStack stack;
init(&stack);
int i = 0;
while (c[i])
{
switch (c[i])
{
case '{':
case '[':
case '(': push(&stack,c[i]);break;
case '}':
if(!empty(stack) && read(stack) == '{')
{
pop(&stack);
break;
}
else return 0;
case ']':
if(!empty(stack) && read(stack) == '[')
{
pop(&stack);
break;
}
else return 0;
case ')':
if(!empty(stack) && read(stack) == '(')
{
pop(&stack);
break;
}
else return 0;
}
i++;
}
return empty(stack); // 匹配结束后栈空则匹配成功,否则失败。
}
int main()
{
char c[] = "{[()]}";
if(matchBracket(c))
printf("匹配成功!\n");
else
printf("匹配失败!\n");
return 0;
}
版权属于:
lixiangrong
作品采用:
《
署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)
》许可协议授权
评论 (0)