数据结构课程设计--括号匹配问题

数据结构课程设计--括号匹配问题

ID:35627465

大小:92.50 KB

页数:15页

时间:2019-04-03

数据结构课程设计--括号匹配问题_第1页
数据结构课程设计--括号匹配问题_第2页
数据结构课程设计--括号匹配问题_第3页
数据结构课程设计--括号匹配问题_第4页
数据结构课程设计--括号匹配问题_第5页
资源描述:

《数据结构课程设计--括号匹配问题》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、广东工业大学华立学院课程设计课程名称题目名称学生学院专业班级学   号学生姓名指导教师2010年12月27日广东工业大学华立学院课程设计(论文)任务书题目名称学生学部(系)专业班级姓名学号一、课程设计(论文)的内容括号匹配问题,假设一个算术表达式中包含圆括号、方括号和花括号三种类型的括号,编写一个函数,用来判别表达式中括号是否正确配对。二、课程设计(论文)的要求与数据要求当输入一表达式,可判断并输出括号是否匹配。三、课程设计(论文)应完成的工作(1)根据上述要求完成一个功能完善的程序;(2)采用模块化的程序设计方法,程序书写符合规范,

2、程序设计应完善;(3)对系统进行初步的错误和漏洞检测;(4)根据设计规范撰写报告并按时提交;(5)设计内容用A4纸打印并按要求装订。四、课程设计(论文)进程安排序号设计(论文)各阶段内容地点起止日期1搜集资料图书馆11.24-11.262需求分析图书馆11.27-11.303系统分析与设计图书馆12.1-12.44功能模块的实现综702机房12.5-12.155系统测试,运行综702机房12.16-12.196完成课程设计(论文)综702机房12.20-12.27五、应收集的资料及主要参考文献【1】周海英.马巧梅.数据结构与算法设计(

3、第二版).国际工业出版社2005【2】朱战立.数据结构---使用C语言(第四版).电子工业出版社2009【3】吴跃.数据结构和算法.机械工业出版社2010发出任务书日期:2010年11月23日指导教师签名:计划完成日期:2010年12月27日教学单位责任人签章:目录1设计内容12算法思想描述13算法及程序实现24算法测试及结果45总结8参考资料9设计内容:括号匹配问题,假设一个算术表达式中包含圆括号、方括号和花括号三种类型的括号,编写一个函数,用来判别表达式中括号是否正确配对。算法要求:要求当输入一表达式,可判断并输出括号是否匹配。算

4、法思想在算术表达式中,右括号和左括号匹配的次序正好符合后到的括号要最先被匹配的“后进先出”堆栈操作特点,因此可以借助一个堆栈来进行判断。括号匹配共有以下4种情况:⑴左右括号配对次序不正确;⑵右括号多于左括号;⑶左括号多于右括号;⑷左右括号配对正确;具体方法如下:顺序扫描算术表达式,当遇到3种类型括号的左括号时,让该括号进栈。当扫描到某一种类型的右括号时,比较当前栈顶括号是否与之匹配,若匹配,则退栈继续进行判断;若当前栈顶括号与当前扫描的括号不相同,则左、右括号配对次序不正确;若字符串当前为某种类型右括号而堆栈已空,则右括号多于左括号;

5、字符串循环扫描结束时,若堆栈非空,则说明左括号多于右括号;如果上述三种情况都没有出现,则说明左、右括号匹配正确。1算法以及程序实现主函数设计如下:VoidExpIsCorrect(charexp[],intn)//判断有n个字符的字符串exp左、右括号是否配对正确{SeqStackmyStack;//定义顺序堆栈变量myStackinti;charc;StackInitiate(&myStack);//初始化堆栈for(i=0;i

6、

7、(exp[i]=='[']

8、

9、(exp[i]=='{'

10、))StackPush(&myStack,exp[i]);//入栈elseif(exp[i]==')'&&StackNotEmpty(myStack)&&StackTop(myStack,&c)&&c=='(')StackPop(&myStack,&c);//出栈elseif(exp[i]==')'&&StackNotEmpty(myStack)&&StackTop(myStack,&c)&&c!='('){printf("左右括号配对次序不正确!");return;}//判断括号elseif(exp[i]==']'&&Stack

11、NotEmpty(myStack)&&StackTop(myStack,&c)&&c=='[')StackPop(&myStack,&c);elseif(exp[i]==']'&&StackNotEmpty(myStack)&&StackTop(myStack,&c)&&c!='['){printf("左右括号配对次序不正确!");return;}//判断方括号elseif(exp[i]=='}'&&StackNotEmpty(myStack)&&StackTop(myStack,&c)&&c=='{')StackPop(&myS

12、tack,&c);elseif(exp[i]==']'&&StackNotEmpty(myStack)&&StackTop(myStack,&c)&&c!='{'){printf("左右括号配对次序不正确!");re

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。