括号匹配问题源代码(C语言).pdf

上传人:蓝**** 文档编号:90997879 上传时间:2023-05-19 格式:PDF 页数:2 大小:92.64KB
返回 下载 相关 举报
括号匹配问题源代码(C语言).pdf_第1页
第1页 / 共2页
括号匹配问题源代码(C语言).pdf_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《括号匹配问题源代码(C语言).pdf》由会员分享,可在线阅读,更多相关《括号匹配问题源代码(C语言).pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、括号匹配(c c语实现)1 1要求编写程序检查该字符串的括号是否成对出现,且不能交叉出现。输:个字符串,边可能包含“()”、“”三种括号,“#”结束输出:成功:代表括号成对出现并且嵌套正确失败:未正确使括号字符。2 2分析个栈,就能解决该问题,左括号栈顶字符必须和第个栈的右括号字符匹配。栈介绍:栈是种特殊的线性表,仅能在线性表的端操作。栈的特性:后进先出(LIFO)由于正在学数据结构,于是栈的定义与操作都是编写的,为了巩固概念3 3代码#include#include#define STACK_INT_SIZE 100#define STACKINCREMENT 10#define bool

2、int /定义bool变量#define SElemType chartypedef struct SElemType*base;/栈基地址 SElemType*top;/栈顶地址 int stacksize;SqStack;/-基本操作的算法描述-/构建个空栈bool InitStack(SqStack*S)S-base=(SElemType*)malloc(STACK_INT_SIZE*sizeof(SElemType);/开辟新的空间 if(!S-base)return 0;/开辟失败返回0 S-top=S-base;S-stacksize=STACK_INT_SIZE;return 1

3、;/若栈不为空,返回栈顶元素,并返回true 否则返回 falsebool GetTop(SqStack S)if(S.top=S.base)return 0;return*(S.top-1);/插元素 为新的栈顶元素bool Push(SqStack*S,SElemType e)if(S-top-S-base=S-stacksize)/如果栈满 需要增加空间 S-base=(SElemType*)realloc(S-base,(S-stacksize+STACKINCREMENT)*sizeof(SElemType);if(!S-base)return 0;S-top=S-base+S-st

4、acksize;S-stacksize+=STACKINCREMENT;*(S-top+)=e;return 1;/若栈不为空,则删除栈顶元素,e返回其值,返回true,否则返回falsebool Pop(SqStack*S,SElemType*e)if(S-top=S-base)return 0;*e=*(-S-top);return 1;/检查括号字符在字符集中的位置int CheckChar(char c,char OP)int i;for(i=0;i 3;i+)if(c=OPi)return i;return 999;int main()SqStack OPTR;InitStack(&

5、OPTR);Push(&OPTR,#);printf(输括号以“#”结尾n);char c;c=getchar();int m=1;/判断最终是否完全匹配 完全匹配 值为1,否则为0 char OP1=,(,;/前置括号字符集 char OP2=,),;/后置括号字符集 while(c!=#)if(CheckChar(c,OP1)3)Push(&OPTR,c);c=getchar();else if(CheckChar(GetTop(OPTR),OP1)=CheckChar(c,OP2)/如果需要检验的两个符号在前置和后置括号集中的位置相同则表配对成功 /例如和,在前置括号集中的位置1,在后置括号集中的位置1,所以匹配成功 Pop(&OPTR,&c);c=getchar();continue;else m=0;break;if(GetTop(OPTR)!=c)m=0;if(m=1)printf(n括号完全匹配!);else printf(n括号匹配失败!);return 0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 管理手册

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁