欢迎来到天天文库
浏览记录
ID:52787862
大小:187.00 KB
页数:15页
时间:2020-03-30
《数据结构——串实践报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、成绩:实验报告课程名称:数据结构实践课实验项目:定长串存储方法姓名:专业:班级:学号:计算机科学与技术学院实验教学中心2017年9月23日哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告实验项目名称:串的定长存储表示方法一、实践目的:1.熟练掌握串的定长顺序存储表示方法。2.利用串的基本操作实现相关算法。二、实践内容:1.实现串的定长顺序存储表示的基本操作。并用主程序进行多次验证。2.设s='abcdefghijk'、t='cde'为两个字符串,利用定长顺序存储结构的串操作,判断t是否为s的子串。如果是,输出子串所在位置(第一个字符)。
2、编程实现。3.已知三个字符串分别为s=’ababababcaabcbcaaaaaa’,s1=’caab’, s2=’bcb’。利用所学字符串基本运算的函数得到结果串为:s3=’caabcbcaaaaaacaaaaaa’。编程实现。三、实验用设备仪器及材料计算机四、实验原理及接线五、实验操作步骤//main4-1.cpp检验bo4-1.cpp的主程序//c1.h(程序名)#include#include#include//malloc()等#include//INT_
3、MAX等#include//EOF(=^Z或F6),NULL#include//atoi()#include//eof()哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告#include//floor(),ceil(),abs()#include//exit()//#include//cout,cin//函数结果状态代码#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defin
4、eINFEASIBLE-1//#defineOVERFLOW-2因为在math.h中已定义OVERFLOW的值为3,故去掉此行typedefintStatus;//Status是函数的类型,其值是函数结果状态代码,如OK等typedefintBoolean;//Boolean是布尔类型,其值是TRUE或FALSE//c4-1.h串的定长顺序存储表示#defineMAXSTRLEN30//用户可在255以内定义最大串长(1个字节)typedefcharSString[MAXSTRLEN+1];//0号单元存放串的长度//bo4-1.cpp串采用
5、定长顺序存储结构(由c4-1.h定义)的基本操作(14个)//SString是数组,故不需引用类型。此基本操作包括算法4.2,4.3,4.5StatusStrAssign(SString&T,char*chars){///生成一个其值等于chars的串Tinti;if(strlen(chars)>MAXSTRLEN)returnERROR;else{T[0]=strlen(chars);for(i=1;i<=T[0];i++)T[i]=*(chars+i-1);returnOK;}}StatusStrCopy(SStringT,SString
6、S){///由串S复制得串Tinti;for(i=0;i<=S[0];i++)T[i]=S[i];returnOK;}StatusStrEmpty(SStringS){哈尔滨理工大学计算机科学与技术学院实验教学中心实验报告///若S为空串,则返回TRUE,否则返回FALSEif(S[0]==0)returnTRUE;elsereturnFALSE;}intStrCompare(SStringS,SStringT){///初始条件:串S和T存在///操作结果:若S>T,则返回值>0;若S=T,则返回值=0;若S7、(i=1;i<=S[0]&&i<=T[0];++i)if(S[i]!=T[i])returnS[i]-T[i];returnS[0]-T[0];}intStrLength(SStringS){///返回串的元素个数returnS[0];}StatusClearString(SStringS){///初始条件:串S存在。操作结果:将S清为空串S[0]=0;//令串长为零returnOK;}StatusConcat(SString&T,SStringS1,SStringS2)//算法4.2改{//用T返回S1和S2联接而成的新串。若未截断,则返回8、TRUE,否则FALSEinti;if(S1[0]+S2[0]<=MAXSTRLEN){//未截断for(i=1;i<=S1[0];i++)T[i]=S1[i];f
7、(i=1;i<=S[0]&&i<=T[0];++i)if(S[i]!=T[i])returnS[i]-T[i];returnS[0]-T[0];}intStrLength(SStringS){///返回串的元素个数returnS[0];}StatusClearString(SStringS){///初始条件:串S存在。操作结果:将S清为空串S[0]=0;//令串长为零returnOK;}StatusConcat(SString&T,SStringS1,SStringS2)//算法4.2改{//用T返回S1和S2联接而成的新串。若未截断,则返回
8、TRUE,否则FALSEinti;if(S1[0]+S2[0]<=MAXSTRLEN){//未截断for(i=1;i<=S1[0];i++)T[i]=S1[i];f
此文档下载收益归作者所有