第五周项目3括号的匹配
来源:互联网 发布:人工智能的应用领域 编辑:程序博客网 时间:2024/06/07 15:49
/*
Copyright (c)2016,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:第五周项目3.cpp
作 者:程德泉
完成日期:2016年9月29日
版 本 号:v1.0
问题描述:假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。
例如,输入2+(3+4)*[2+{[3]}]-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。
输入描述:输入表达式
程序输出:输出判断结果
Copyright (c)2016,烟台大学计算机与控制工程学院
All rights reserved.
文件名称:第五周项目3.cpp
作 者:程德泉
完成日期:2016年9月29日
版 本 号:v1.0
问题描述:假设表达式中允许三种括号:圆括号、方括号和大括号。编写一个算法,判断表达式中的各种左括号是否与右括号匹配。
例如,输入2+(3+4)*[2+{[3]}]-8,输出匹配正确;输入2+(3+4*[2)+{[3]}-8,输出匹配错误。
输入描述:输入表达式
程序输出:输出判断结果
*/
代码:
- #include "sqstack.h"
- bool isMatch(char *st)
- {
- int d=1, i;
- char c;
- SqStack *s;
- InitStack(s);
- for(i=0; st[i]!='\0'&&d; i++)
- {
- switch(st[i])
- {
- case'(':
- case'[':
- case'{':
- Push(s, st[i]);
- break;
- case')':
- Pop(s, c);
- if(c!='(') d=0;
- break;
- case']':
- Pop(s, c);
- if(c!='[') d=0;
- break;
- case'}':
- Pop(s,c);
- if(c!='{') d=0;
- break;
- }
- }
- if(StackEmpty(s)&&d==1)
- return true;
- else
- return false;
- }
- int main()
- {
- char st[50];
- printf("请输入表达式:");
- scanf("%s", st);
- if(isMatch(st))
- printf("配对正确!!\n");
- else
- printf("配对错误!!\n");
- return 0;
- }
知识点总结:
栈的基本应用。
学习心得:
将括号当成一般字符处理。
0 0
- 第五周项目3--括号的匹配
- 第五周 项目3-括号的匹配
- 第五周项目3 -括号的匹配
- 第五周 项目3 - 括号的匹配
- 第五周项目3-括号的匹配
- 第五周项目3-括号的匹配
- 第五周项目3-括号的匹配
- 第五周 项目3-括号的匹配
- 第五周项目3-括号的匹配
- 第五周--项目3-括号的匹配
- 第五周 项目3 --括号的匹配
- 第五周项目3-括号的匹配
- 第五周项目3-括号的匹配
- 【第五周项目3-括号的匹配】
- 第五周项目3--括号的匹配
- 第五周项目3-括号的匹配
- 第五周项目3-括号的匹配
- 第五周--项目3括号的匹配 .
- 第五周 建立链栈算法库
- ngix错误页面替换,404 502等
- android中如何在得到返回数据后设置图片
- Windows使用Eclipse Neon搭建Java C/C++ Python开发环境
- 第5周项目4-数值转换
- 第五周项目3括号的匹配
- OJ1020
- 第五周项目3—括号的分配
- tcp三次握手
- 第五周项目4-数制转换
- 第四周项目6
- 【第5周 项目4-数制转换】
- 第六周 项目2-建立链栈算法库
- 第五周 项目3:括号的匹配