- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C 语言实现 括号匹配 算法实例(C language implementation bracket matching algorithm instance)
C 语言实现 括号匹配 算法实例(C language implementation bracket matching algorithm instance)
# include malloc.h
typedef char selemtype;
typedef struct {
char rc;
char lc;
bracket};
# include sqstack.h
main () {/ * array用来存储原括号, n用来表示原括号的对数; string 用来存储所需判断括号的括号,
m表示所需判断括号的的个数 * /
int i, n, m, t, flag;
sqstack s;
int bdunrc (bracket * a, char b, int n);
int bdunlc (bracket * a, char b, int n);
char * string, e;
bracket * array;
printf (plase input array number:);
scanf (% d, n);
array = (bracket *) malloc (n * sizeof (bracket));
for (i = 0; i n; i + +) {
flag = 1;
printf (plese input the% dth couple of array:, i + 1);
scanf (% c, array [in].lc);
e = array [in].lc;
while (e = = \ n flag = = 1) {
scanf (% c, array [in].lc);
flag = 0;
}
scanf (% c, array [in].rc);
flag = 1;
e = array [in].rc;
while (e = = \ n flag = = 1) {
scanf (% c, array [in].rc);
flag = 0;}
}
printf (please input backet crouse:);
scanf (% d, m);
string = (char *) malloc (n * sizeof (char));
for (i = 0; i m; i + +) {
flag = 1;
printf (plese input the% dth stitches:, i + 1);
scanf (% c, string [in]);
e = string [in];
while (e = = \ n flag = = 1) {
scanf (% c, string [in]);
flag = 0;}
}
if (initstack ( s)) {/ * 括号匹配的主要的部分 * /
for (i = 0; i m; i + +) {
t = bdunrc (array, string [], n);
if (t) {
if (* (s.top-1) = = array [t-1].lc)
pop ( s e);
}
else
push ( s, string []);
}
if (stackempty (s)) printf (ok n );
else printf (括号不匹配 \ n);
}
}
int bdunlc (bracket * a, char b, int n) {/ * 判断字符b是不是a的左括号 * /
int i, k = 0;
for (i = 0; i n; i + +)
if (a [i].lc = = b) {
k = i + 1; break;
}
return (k);
}
int bdunrc (bracket * a, char b, int n) {/ * 判断字符b是不是a的右括号 * /
int i, k = 0;
for (i = 0; i n; i + +)
if (a [i].rc = = b) {
k = i + 1; break;
}
return k;
}
/ / / * * / sqstack.h 文件
typedef struct {
selemtype * base;
selemtype * top;
int stacksize;
sqstack};
int initstack (sqstack * s) {
int n;
printf (please input the size of sqstack:);
scanf (% d, n);
printf (\ n);
s - base = (selemtype *) malloc (n * siz
您可能关注的文档
- 骨骼肌肉干预.ppt
- About Kingsoft(关于金山).doc
- ABB端子(ABB terminal).doc
- ABO血型鉴定(生理盐水法)(Identification of ABO blood group (physiological saline method)).doc
- AbstractListModel(AbstractListModel).doc
- ABS塑料特性(ABS plastic characteristic).doc
- ABS电镀工艺(ABS plating process).doc
- ABS表面喷漆(ABS coating).doc
- access中sql语句添加修改删除字段(Add the modified delete field to the SQL statement in access).doc
- AB景区(AB scenic spot).doc
- C++ Vectors(c++向量).doc
- C++ 类型转换(C + + type conversion).doc
- C++ Builder VCL库函数(类型转换)(C + + Builder VCL library function (type conversion)).doc
- c++上课试题(C + + class questions).doc
- C++ 系统托盘图标实现(C + + system tray icon implementation).doc
- C++ 编码风格指南(C + + coding style guide).doc
- C++上机实验二(C + + machine experiment 2).doc
- C++,C排序函数 sort(),qsort()的用法(C + +, sort (), qsort ()).doc
- c++中的强制转换(Mandatory transformations in c + +).doc
- C++之窗口最小化实现(The window of c + + is minimized).doc
最近下载
- 汉英笔译基础教程第6章 人称与物称.pptx VIP
- 动脉血气分析临床操作指南共识最新版.docx VIP
- 第十一章《简单机械和功》单元测试 (含答案)2024-2025学年苏科版九年级物理上册.pdf VIP
- 32. 《醉翁亭记》对比阅读(原卷版)-2026年中考语文之文言文对比阅读讲练(全国通用).docx
- 素养与情操——美术鉴赏的意义课件.pptx VIP
- 迪士尼运营管理案例分享.docx VIP
- 2025年天翼云高级运维工程师认证参考试题库资料(含答案).pdf
- 2024—2025学年福建省厦门市第十中学七年级上学期期中语文试卷.doc VIP
- 科学一年级上册教科版 观察一棵植物(课件) (1).pptx VIP
- 英汉对比之物称与人称汇总课件.pptx VIP
文档评论(0)