括号匹配---栈实现
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");
}
}
{
//栈应用 , 检查字符串中括号是否匹配
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");
}
}
相关文章推荐
- c++与c#的类型转换
- 浅谈MD5加密算法中的加盐值(SALT)
- 手机号微信检测方法案例分析
- 【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析
- oralce中的dual详解
- 安卓的提高,测测自己的安卓水平
- Sqlite错误代码
- Linux入门(二)文件查找
- js继承
- 如何增加微信信任感!(很实在!)
- Centos运维常用命令总结
- ORACLE数据库事务隔离级别
- 【3】使用dwz框架搭建网站后台
- freeMarker(一)——freeMarker简介
- Container View Controller
- 文章标题
- VIM Cscope,Ctags相关快捷键
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
- Bootstrap学习总结笔记(13)-- 基本组件之缩略图
- C#开发数据库第一章上机题