- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 第四章 chp4修改
第四章 串 4.1 串类型的定义 4.2 串的表示和实现 4.2.1 定长顺序存储表示 4.2.2 堆分配存储表示 4.2.3 串的块链存储表示 4.3 串的模式匹配算法 上述串的操作是最基本的,串的其余操作可由这些基本操作组合而成。 例:算法4.1串的定位Index(S,T,pos) 算法思想: 在主串S中取从第i(i的初值为pos)个字符起、长度和串T相等的子串和串T比较,若相等,则求得函数值为i,否则i值增1直至S中不存在和串T相等的子串为止。 5.串联接(用T返回由S1和S2联接而成的新串) Status Concat(HString T,HString S1,HString S2) { if(T.ch) free(T.ch); if(!(T.ch=(char*)malloc((S1.length+S2.length)*sizeof(char)))) exit(OVERFLOW); T.ch[0..S1.length-1]=S1.ch[0..S1.length-1]; T.length=S1.length+S2.length; T.ch[S1.length..T.length-1]=S2.ch[0..S2.length-1]; return OK; }//Concat 6.取子串(用Sub返回串S的第pos 个字符起长度为len的子串) Status SubString(HString Sub,HString S,int pos,int len){ if(pos1||posS.length||len0||lenS.length-pos+1) return ERROR; if(Sub.ch) free(Sub.ch); if(!len) { Sub.ch=NULL;Sub.length=0; } else{ Sub.ch=(char*)malloc(len*sizeof(char)); Sub.ch[0..len-1]=S.ch[pos-1..pos+len-2]; Sub.length=len; } return OK; }//SubString 算法4.7 求模式串T的next函数值 void get_next(SString T,int next[ ]){ i=1;next[1]=0;j=0; while(iT[0]){ if(j==0||T[i]==T[j]){++i;++j;next[i]=j;} else j=next[j]; } }//get_next 算法4.8 求模式串T的next函数修正值 void get_nextval(SString T,int nextval[]){ i=1;nextval[1]=0;j=0; while(iT[0]){ if(j==0||T[i]==T[j]){ ++i;++j; if(T[i]!=T[j])nextval[i]=j; else nextval[i]=nextval[j]; } else j=nextval[j]; } } 习题:1.选择题(1)串是一种特殊的线性表,其特殊性体现在( )。 A.可以顺序存储 B.数据元素是一个字符 C.可以链式存储 D.数据元素可以是多个字符若 (2)串下面关于串的的叙述中,( )是不正确的? A.串是字符的有限序列 B.空串是由空格构成的串C.模式匹配是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储(3)串“ababaaababaa”的next数组为( )。 A.012345678999 B.012121111212 C.011234223456 D.0123012322345(4)串“ababaabab”的nextval为( )。A.010104101 B.010102101 C.010100011 D.010101011 (5)串的长度是指( )。A.串中所含不同字母的个数 B.串中所含字符的个数C.串中所含不同字符的个数 D.串中所含非空格字符的个数 串操作应用: 文本编辑 文本是一个字符串,页是这个字符串的子串,行又是页的子串。 建立索引表 2.简答题(1)已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的next和
您可能关注的文档
最近下载
- 基坑支护内支撑梁拆除施工方案.docx VIP
- 最新人教版一年级上册《数学游戏》课件(整套)教学PPT(2024年秋-新教材).pptx VIP
- 最新人教版一年级数学上册《数学游戏》教学课件(整套)PPT(2024秋-新教材).pptx VIP
- GBT6058-2005 纤维缠绕压力容器制备和内压试验方法.pdf
- GB╱T 23711.1-2009 氟塑料衬里压力容器电火花试验方法.pdf
- 7m焦炉推焦车的结构特征.pdf
- 研发领料单模板.docx VIP
- 辽宁省技工学校审批表.doc VIP
- GB 26501--2011 氟塑料衬里压力容器 通用技术条件.pdf
- 施工放样报验单.doc VIP
文档评论(0)