- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构-括号匹配课程设计报告
安徽三联学院
《数据结构》课程设计
班级: 计 算 机 科 学 与 技 术 系
计算机科学与技术专业2008级(2)班
组别: 第 八 组
组长: 徐 恒
组员:何洋洋、枉林然、魏世捷、王煜、戴文强
完成日期:2010.1.20
题目:括号匹配检验
一、问题描述:
假设一个算术表达式可以包含3种括号:圆括号“(”和“)”,方括号“[”和“]”,和花括号“{”和“}”且这三种括号可按照任意次序嵌套使用(如:…[…{…}…[…]…]…[…]…(…)…)。设计一个程序,判别所给定表达式中所含括号是否匹配。
要求:
将算术表达式保存在带头结点的单链表中;
在1中建立的单链表上实现括号匹配问题的求解。
解决问题思路:
首先建立带头结点的单链表,单链表的数据域存储字符数据,指针域为结点型指针。设立字符型数组先将算术表达式输入到数组当中,通过插入节点函数将数组中字符全部插入到单链中1中。
建立单链表2,通过switch,case语句将单链表1中的括号字符全部插入到单链表2中。
调用括号匹配函数将,单链表2的头节点调入函数当中,设立标志位has。当has取1时,说明找到一组匹配括号;当has取0时,当前一组括号不匹配。设立temp指向当前所要判断节点,将temp所指节点的值与temp-〉next节点的值相比较,利用匹配括号ASCII值相差1或2,相同则相差0;或不相同差值不为1、2或0。当temp与temp-〉next的差值为1或2时,说明找到一组匹配括号。Temp=temp-〉next;进行新的判断。当temp与temp-〉next的差值不为1或2时,将temp赋为temp-〉next;进行新一轮的判断。若temp-〉next-〉next与temp-〉next-〉next-〉next匹配时,此时将temp-〉next-〉next与temp-〉next-〉next-〉-〉next全部值为空值。且temp-〉next未找到匹配字符时将temp重新赋为temp-next,进行新的判断。
最后,若单链表p为空则则说明表达式中括号匹配;若p不为空,则说明算术表达式中括号不匹配。
运行环境:
编辑主要环境为microsoft visualC++6.0。
调试运行环境为Turbo C2.0。
组员分工情况:
何洋洋、汪林然负责单链表相关函数的编写;
王煜、洪小龙负责收集相关材料和参考资料;
徐恒、戴文强负责整理、编译和调试。/
遇到的困难及解决问题的办法:
最后在调试程序时发现许多错误,例如函数类型不匹配、没有合适的指针、未定义变量、句法错误、函数声明错误、不合法的指针、有未使用的变量、定义不正确等。先是找同学帮助,然后自己学着改错。慢慢的自己学会改错,并找到相关资料来找出的修改方法。
遇到实在不懂的地方,就找组员和同学一起讨论,找到问题的根本原因,然后加以纠正。
源代码及注释:
括号匹配源程序代码及注释
#include stdio.h /*头文件*/
#include string.h
#include stdlib.h
#define LEN 80
typedef struct list
{
char node; /*数据域*/
struct list *next; /*指针域*/
}list,*linklist; /*节点类型*/
void initlist(linklist); /*函数声明*/
int isempty(linklist);
int creatlist_node(linklist,char);
Textlist(linklist);
void main() /*主函数*/
{
char test[LEN];
int i;
list a,b;
linklist p,q=b; /*设立P为list结点指针*/
p=a; /*使P指向头结点a*/
initlist(p); /*使p为第一个节点*/
printf(Pliease input the expression:\n)
您可能关注的文档
- 摄影镜头:图解透视.docx
- 摄影艺术家眼中的“自我”.ppt
- 摄影构图解析.ppt
- 摆线针轮减速机摆线减速机术语.doc
- 摇摇棒实习报告.doc
- 摩托车护片锻模设计.doc
- 撕纸画教案.doc
- 播音主持模拟题.doc
- 摩托车发动机电喷硕士论文.docx
- 撕纸画技法教程low.doc
- 中国国家标准 GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18233.4-2024信息技术 用户建筑群通用布缆 第4部分:住宅.pdf
- GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- 《GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计》.pdf
- 中国国家标准 GB/T 18978.210-2024人-系统交互工效学 第210部分:以人为中心的交互系统设计.pdf
- GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- 《GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置》.pdf
- 中国国家标准 GB/T 16649.2-2024识别卡 集成电路卡 第2部分:带触点的卡 触点的尺寸和位置.pdf
- GB/T 17889.4-2024梯子 第4部分:铰链梯.pdf
- 《GB/T 17889.4-2024梯子 第4部分:铰链梯》.pdf
文档评论(0)