数据结构 第四章 chp4修改.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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和

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档