重庆大学基础性实践环节实践报告实践课程名称数据结构开课实验室数统学院LD104学院数统学院年级2017级专业班理科实验班数学类01学生姓名学号开课时间2018至2019学年第一学期总成绩教师签名数统学院制课程名称数据结构实验题目串的基本操作与KMP模式匹配算法实践目的掌握串的操作实践环境C++算法描述1.采用堆分配存储与表示串2.串的连接3.串的截取4.next数组记录失配后重新比较的位置#include#include#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineMAXQSIZE5//Status是函数的类型,其值是函数结果状态码typedefintStatus;typedefstruct{char*ch;//若是非空串,则按串长分配存储区,否则ch为NULLintlength;//字符串长度}HString;//生成一个其值等于串常量chars的串TStatusStrAssign(HString&S,char*chars){inti;for(i=0;chars[i];i++){}//if(S.ch){//free(S.ch);//S.ch=NULL;//}if(!i){S.ch=NULL;S.length=0;}else{S.ch=(char*)malloc(i*sizeof(char));//i?if(!S.ch)exit(OVERFLOW);S.length=i;for(intj=0;jT返回值>0。相等返回0,否则返回<0intStrCompare(HStringS,HStringT){for(inti=0;iS.length||len<0||(S.length-pos+1)S.length)returnERROR;else{for(i=0;iT.length){returni-T.length;}elsereturn0;}voidprintV(HString&S){for(inti=0;i