数据结构04gj.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构04gj,数据结构,数据结构与算法,数据结构c语言版,数据结构与算法分析,大话数据结构,java数据结构和算法,下列那个不是数据结构,java数据结构,数据结构视频教程

第四章 串 串的结构特点 字符串一般简称为串。 在事务处理中,处理对象的信息一般作为字符串处理。 信息检索系统,文字编辑系统也都以字符串数据作为处理对象。 4.1 串的抽象数据类型的定义 ____名词术语 4.1 串的抽象数据类型的定义 ____基本操作 StrCopy Index StrInsert StrDelete DestroyString 基本操作实现 Concat SubString strinsert ClearString 本章作业 串的长度是指( ) A.串中所含不同字母的个数 B.串中所含字符的个数 C.串中所含不同字符的个数 D.串中所含非空格字符的个数 #define CHUNKSIZE 80 // 用户定义块的大小 typedef struct Chunk { // 结点结构 char ch[CUNKSIZE]; struct Chunk *next; } Chunk; typedef struct { // 串的链表结构 Chunk *head, *tail; // 串的头和尾指针 int curlen; // 串的当前长度 } LString; 存储结构 子串定位运算又称为模式匹配(Pattern Matching)或串匹配(String Matching),此运算的应用非常广泛。 4.3 串的模式匹配算法 int index(SString S , SString T , int pos){ int i , j , k , m=S.length , n=T.length; for(i=0;i=n-m;i++){ j=0;k=i; while(jm S.ch[k]==T.ch[j]) k++, j++; if(j==m) return i; } return –1; } 4.3.1 求子串位置的定位函数 基本思想:每当匹配过程中出现字符串比较不等时,不需回溯i指针,而是利用已经得到的“部分匹配”结果将模式向右“滑动”尽可能远的一段距离后,继续进行比较。 4.3.2模式匹配算法的改进--KMP算法 (了解) int Index_KMP(SString S,SString T,int pos){ //其中,T非空,1≤pos≤StrLength(S)。 ??i=pos; j=1; ??while(i=S[0]j=T[0]) if(j==0||S[i]==T[j]){++i;++j;}//继续比较后继字符 ?????? else j=next[j]; //模式串象右移动 ??if(jT[0]) return i-T[0];//匹配成功 ?else return 0; }//Index_KMP 算法描述(了解) 本章小结 串的抽象数据类型的定义 串的表示和实现 4.1 串的抽象数据类型的定义 4.2 串的表示和实现 4.3 串的模式匹配算法 4.4 串操作应用举例—文本编辑 串(String)(字符串):由零个或多个字符组成的 有限序列。 记作: S=‘a1a2a3…an’, 其中S是串名, 单引号括起来的字符序列是串值; ai(1≤i≤n)可以是字母、数字或其它字符; 串的长度,串中字符的数目n。 ADT String{ 数据对象:D={ai | ai ∈CharacterSet, i=1,2,...,n, n≥0} 数据关系:R1 = {ai-1,ai|ai-1,ai∈D, i=2,...,n} 基本操作:…… }ADT String StrAssign StrAssign(T , chars) 初始条件:chars是字符串常量。 操作结果:生成一个值等于chars的串T。 StrCopy(T , S) 初始条件:串S存在。 操作结果:由串S复制得串T。 StrEmpty StrEmpty(S) 初始条件:串S存在。 操作结果:若串S为空串,则返回 TRUE, 否则返回FALSE。 Concat Concat(T , S1 , S2) 初始条件:串S1和S2存在。 操作结果:用T返回由S1和S2联接

文档评论(0)

mydoc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档