欢迎来到天天文库
浏览记录
ID:22290785
大小:148.39 KB
页数:12页
时间:2018-10-28
《数据结构综合实验报告最新》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、HunanUniversityOfScienceandEngineering综合性、设计性实验报告姓名_全威_学号_201408003201_专业软件工程班级2014级软件X班实验课程名称数据结构指导教师及职称黎明副高开课学期2015至2016学年第一学期上课时间2015年11刀湖南科技学院教务处编一、实验设计方案实验名称:串的操作实验时问:2015-11-4〜2015-11-18小组合作:是0否鲁成绩:教师评语:1、实验目的:熟练掌握串的概念,熟知串的基本操作,掌握BM算法求模式匹配的基本过程,掌握在模式匹配屮求next和nextval的意义和重要性,完全掌握KMP算法的应用,能够
2、在KMP算法基础上进行改进。2、实验设备及材料:联想电脑一体机,操作系统MacOSX,开发平台XCode3、实验内容:问题描述:第一课时完成简单模式匹配算法求模式串t在主串s的位置,第二课时完成对模式串求next数组值和nextval,第三课时完成KMP算法求t在s中位置,第四课时完成修正后的KMP算法4、实验方法步骤及注意事项:(请自行填写,不得雷冋,各位冋学的实验报告应有所区另IJ,不要照抄!如果表格的长度不够,可以自打拉伸!)①实验步骤:②设计思路:5.实验数据处理方法:①数据输入②结果输出6.程序代码:#include#include#i
3、nclude#defineMaxSize100typedefstruct{chardata[MaxSize];//定义卩」容纳MaxSize个字符的空间intlength;//标记当前实际申长}SqString;voidStrAssign(SqString&str,charcstr[]){//由串常量cstr创建串strinti;for(i=0;cstr[i]!=* ';i++)str.data[i]=cstr[i];str.length=i;}voidDispStr(SqStrings){"输出串s的所有元素inti;if(s.length〉O){for(i=
4、0;i=t.length)k=i-t.length;//返冋匹配的第一个字符的下标elsek=-l;//模式匹配不成功returnk;}voidGetNext(SqStr
5、ingt,intnext[]){//由模式串t求出next值intj,k;j=0;k=-l;next[0]=-l;while(j6、!=t.data[k】)nextval[j]=k;elsenextva1[j]=nextva1[k];}elsek=nextval[k];}}intKMPIndex(SqStrings'SqStringt){//KMP算法intnext[MaxSize],i=O,j=O/v;GetNext(t,next);while(i=t.length)v=i-t.length;//返冋匹配模式串的首字符下标els7、ev=-l;//返冋不匹配称志returnv;}intKMPIndexl(SqStrings,SqStringt){//改进的KMP算法intnextval[MaxSize],next[MaxSize],i=O,j=O,v;GetNextval(t,next);GetNextval(t,nextval);while(i
6、!=t.data[k】)nextval[j]=k;elsenextva1[j]=nextva1[k];}elsek=nextval[k];}}intKMPIndex(SqStrings'SqStringt){//KMP算法intnext[MaxSize],i=O,j=O/v;GetNext(t,next);while(i=t.length)v=i-t.length;//返冋匹配模式串的首字符下标els
7、ev=-l;//返冋不匹配称志returnv;}intKMPIndexl(SqStrings,SqStringt){//改进的KMP算法intnextval[MaxSize],next[MaxSize],i=O,j=O,v;GetNextval(t,next);GetNextval(t,nextval);while(i
此文档下载收益归作者所有