括号匹配的检验.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
湖南工学院 计算机与信息科学系 课程设计报告 2010—2010学年第一学期 课程名称 —— 数据结构 设计题目 —— 括号匹配的检验 姓名 —— 专业班级 —2 学号 —— 2010 年 12 月 31 日 目录 1 设计任务书……………………………… 1.1 题目与要求……………………………………………… 1.2 设计中涉及的知识点…………………………………… 2 功能设计………………………………… 2.1抽象数据类型的定义……………………………………… 2.2 模块流程图……………………………………………… 3 程序代码设计与说明…………………… 3.1 子程序设计与其功能…………………………………… 3.2 主函数设计与其功能…………………………………… 4 程序设计总结…………………………… 4.1 程序调试情况…………………………………………… 4.2 个人经验及体会………………………………………… 5 用户使用说明…………………………… 6测试结果………………………………… 7 附录(源程序)………………………… 1 设计任务书 1.1 题目与要求 [问题描述]   假设表达式中允许有两种括号:圆括号和方括号,其嵌套的顺序随意,即(()[ ])或 [([ ] [ ])]等为正确格式,[( ])或(((]均为不正确的格式。检验括号是否匹配的方法可用 “期待的紧迫程度”这个概念来描述。例如:考虑下列的括号序列:   [ ( [ ] [ ] ) ]   1 2 3 4 5 6 7 8   当计算机接受了第1个括号以后,他期待着与其匹配的第8个括号的出现,然而等来的却是第2个 括号,此时第1个括号“[”只能暂时靠边,而迫切等待与第2个括号相匹配的 第7个括号“)”的出现,类似的,因只等来了第3个括号“[”,此时,其期待的紧迫程度较第2个括号更紧迫,则第2个括号只能靠边,让位于第3个括号,显然第3个括号的期待紧迫程度高于第2个括号,而第2个括号的期待紧迫程度高于第1个括号;在接受了第4个括号之后,第3个括号的期待得到了满足,消解之后,第2个括号的期待匹配就成了最急迫的任务了,…… ,依次类推。可见这个处理过程正好和栈的特点相吻合。 [基本要求] 读入圆括号和方括号的任意序列,输出“匹配”或“此串括号匹配不合法”。 1.2 设计中涉及的知识点 编译预处理(文件包含)、选择结构、循环结构、堆栈、函数 2 功能设计 2.1抽象数据类型的定义 包括堆栈的定义 2.2模块流程图 N 开始输入括号序列 N 开始 输入括号序列 输出结果 输出结果 判断括号 是否匹配 Y 3 程序代码设计 3.1子程序设计及其功能 (1)函数原型: Stackinitiate(Seqstack *S) 功能:初始化堆栈 代码:void Stackinitiate(Seqstack *S) { S-top=0; } (2)函数原型: Stacknotempty(Seqstack S) 功能: 判断堆栈是否为空 代码: int Stacknotempty(Seqstack S) { if(S.top=0)return 0; else return 1; } (3)函数原型:Stackpush(Seqstack *S, Datatype x) 功能: 数据元素入栈 代码:int Stackpush(seqstack *S, Datatype x) { if(S-top=Maxstack) { printf(堆栈已满无法插入!\n); return 0; } else { S-stack[S-top]=x; S-top++; return 1; } } (4)函数原型:Stackpop(Seqstack *S , Datatype *d) 功能:堆栈中数据元素出栈 代码: int Stackpop(Seqstack *S , Datatype *d) { if(S-top=0) { printf(堆栈已空无数据元素出栈!\n); return 0; } else { S-top--; *d=S-stack[S-top]; return 1; } } (5)函数原型:Stacktop(Seqstack S , Datatype *d) 功能:取堆栈中栈顶元素 代码:int Stacktop(Seqs

文档评论(0)

小教资源库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档