数据结构括号匹配课程设计报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构括号匹配课程设计报告.doc

安徽三联学院 《数据结构》课程设计 班级:计算机科学与技术系 计算机科学与技术专业2008级(2)班 组别: 第八 组 组长: 徐 恒 组员:何洋洋、枉林然、魏世捷、王煜、戴文强 完成日期:2010.1.20 题目:括号匹配检验 一、 问题描述: 假设一个算术表达式可以包含3种括号:圆括号“(”和“)”,方括号“[”和 和花括号“{”和“}”且这三种括号可按照任意次序嵌套使用(如:…[…{…}… […]…]…[…]…(???)…)。设计一个程序,判别所给定表达式中所含括号是否 匹配。 二、 要求: 将算术表达式保存在带头结点的单链表屮; 在1中建立的单链表上实现括号匹配问题的求解。 三、 解决问题思路: 1、 首先建立带头结点的单链表,单链表的数据域存储字符数据,指针域为结 点型指针。设立字符型数组先将算术表达式输入到数组当屮,通过插入节 点函数将数组中字符全部插入到单链中1中。 2、 建立单链表2,通过switch, case语句将单链表1屮的括号字符全部插入到 单链表2中。 3、 调用括号匹配函数将,单链表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 M配时,此 时将 temp-〉next-〉next 与 temp-〉next-〉next-〉-〉next 全部值为空值。 且temp-〉next未找到匹配字符时将temp重新赋为temp-〉next,进行新的 判断。 4、 最后,若单链表p为空则则说明表达式中括号匹配;若p不为空,则说明 算术表达式中括号不匹配。 运行环境: 1、 编辑主要环境为 microsoft visualC++6. 0。 2、 调试运行环境为Turbo C2. 0o 五、组员分工情况: 1、 何洋洋、汪林然负责单链表相关函数的编写; 2、 王煜、洪小龙负责收集和关材料和参考资料; 3、 徐恒、戴文强负责整理、编译和调试。/ 六、 遇到的困难及解决问题的办法: 1、 最后在调试程序时发现许多错误,例如函数类型不匹配、没有合适的指针、 未定义变量、句法错误、函数声明错误、不合法的指针、有未使用的变量、 定义不正确等。先是找同学帮助,然后自己学着改错。慢慢的自己学会改 错,并找到相关资料来找出的修改方法。 2、 遇到实在不懂的地方,就找组员和同学一起讨论,找到问题的根本原因, 然后加以纠正。 七、 源代码及 : 括号匹配源程序代码及 .#include stdio.h#include string.h#include stdlib.h#define LEN 80 typedef struct list { .#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=a; initlist(p);/* void main() { char test[LEN]; int i; list a,b; linklist p,q=b; p=a; initlist(p); /*主函数*/ /*设立P为list结点指针*/ 产使P指向头结点a*/ /*使p为第一个节点*/ printf(Pliease input the expression:、!!”); scanf(’’%80s’’,test); for(i=0;iLEN;i++) creatlist_node(q,test[i]); 表q中*/ /*将数组中算术表达式存入单链 for(

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档