- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 控制性详细规划_案例.ppt
- 口腔颌面部一般检查.ppt
- 口腔门诊重要岗位职责说明书.doc
- 口腔影像学课件.ppt
- 口译数字练习.doc
- 扣件式脚手架计算书.doc
- 库房温湿度验证方案.doc
- 跨部门沟通与有效协作.ppt
- 跨河特大桥工程安全控制监理细则.doc
- 跨栏跑技术教学授课教案.doc
- SAP_财务操作手册.docx
- 2021年公路水运助理试验检测师《道路工程》真题及答案解析(试题与答案分开版).pdf
- 2020年一级建造师《建设工程项目管理》真题及答案解析.pdf
- 2023年二级建造师《建设工程施工管理》考点速记手册.pdf
- 2023年二级建造师《市政公用工程管理与实务》考点速记手册.pdf
- 港口公司发展战略规划.docx
- 2022年二级建造师《机电工程管理与实务》真题(二)及答案解析.pdf
- 2022年二级建造师《建设工程施工管理》真题及答案解析.pdf
- 2020年中安《其他安全(不包括消防安全)技术》真题及答案解析.pdf
- 2021年中安《建筑施工安全技术》真题及答案解析.pdf
文档评论(0)