您的位置:首页 > 其它

括号匹配---栈实现

2016-12-07 15:55 405 查看
void compare(char *str)

{
//栈应用 , 检查字符串中括号是否匹配
Stack *s = createStack(30);
//左括号入栈
int i = 0;
int data = 0;
while (str[i] != '\0')
{
if (str[i] == '(' || str[i] == '{')
{
push(s, str[i]);
}
if (str[i] == ')' || str[i] == '}')
{
int ret = pop(s, &data);
if (0 != ret)
{
printf("不匹配111111111111111111111\n");
return;

}
if ((data == '('&&str[i] == ')') || (data == '{'&&str[i] == '}'))
{
i++;
continue;
}
else
{
printf("不匹配22222222222222222\n");
return;
}
}
i++;
}
if (0 == s->count)
{
printf("匹配3333333333333333333333\n");
}
else
{
printf("不匹配4444444444444444444\n");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: