【大学数据结构课件】串.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文档。上传文档
查看更多
内容提要 5.1 串及其操作 串的定义 串的基本操作 5.2 串的表示和实现 顺序存储表示 串的块链存储表示 5.3 串的模式匹配算法 求子串位置的定位函数 模式匹配的一种改进算法 5.4串操作应用举例 文本编辑 建立词索引表 5.1 串及其操作 1、串的逻辑结构定义 串(String)(或字符串):是由零个或多个字符组成的有限序列。一般记为:s=‘a1a2…an’ (n?0) 其中,s是串的名,用单引号括起来的字符序列是串的值;ai(1? i? n)可以是字母、数字或其他字符;串中字符的数目n称为串的长度。零个字符的串称为空串(null string),它的长度为零。(空串与空格串的区别) 子串:串中任意个连续字符构成的子序列 串相等:当且仅当这两个串的值相等。也就是说,只有当两个串的长度相等,并且各个对应位置的字符串都相等时才相等。 串及其操作(cont’d) 2. 串的基本操作 串的基本操作: 赋值 复制 比较 求长度 串连接 子串定位 取子串 串插入 串删除 串替换 5.2 串的表示和实现 1、字符串的存储表示 (1)顺序存储 利用静态数组存放字符串 (2)堆分配存储 利用动态分配的内存存放字符串 (3)链式存储 块链结构:#define N 5 //N决定存储密度 typedef struct strnode {char sdata[N]; struct strnode *next; }STRNODE; 串的表示和实现(cont’d) (3)链式存储 块链结构:#define N 5 //N决定存储密度 typedef struct strnode {char sdata[N]; struct strnode *next; }STRNODE; 串的表示和实现(cont’d) 2、字符串基本操作的实现 (1)串的联接 利用截尾法进行处理 (2) 求两个串的最长公共子串 串的表示和实现(cont’d) 5.3 串的模式匹配算法 1、字符串模式匹配 串的模式匹配算法(cont’d) 2. 字符串模式匹配的KMP算法 串的模式匹配算法(cont’d) 2. 字符串模式匹配的KMP算法 串的模式匹配算法(cont’d) 2. 字符串模式匹配的KMP算法 5.4 串操作应用举例 1、文本编辑 文本编辑程序是一个面向用户的系统服务程序,广泛用于源程序的输入和修改,甚至用于报刊和书籍的编辑排版以及办公室的公文书信的起草和润色。 文本编辑的实质是修改字符数据的形式或格式。 各种文本编辑程序的功能强弱不同,但是其基本操作是一致的,一般都包括串的查找、插入和删除等基本操作。 文本编辑程序的设计:用户可以利用换页符和换行符把文本划分为若干页,每页有若干行。可以把文本看承是一个字符串,称为文本串,页则是文本串的子串,行又是页的子串。 2、建立词索引表 信息检索是计算机应用的重要领域之一。 主要操作是在大量的存放在磁盘上的信息中查询一个特定的信息,为了提高效率,一个重要的问题是建立一个好的索引系统。 * * 串值必须用一对单引号括起来,但单引号本身不属于串,它的作用只是为了避免与变量名或数的常量混淆而已。 普通线性表操作的最基本单位是结点,而字符串操作的基本单位是串或子串 A B C D E F G H ^ 在D后面插入OOO后: A B C D O O O E F G H ^ void maxcomstr(char s[],char t[])//串采用顺序存储结构 {int index=0,lens,lent,length=0,length1,i=0,j,k; lens=strlen(s);lent=strlen(t); while(ilens)//当串s没完,i是串s的下标 {j=0; while(jlent)//当串t没完,j是串t的下标 {if(s[i]==t[j]) //遇到相等的字符,继续找相等字符构成子串 {length1=1; for(k=1;s[i+k]==t[j+k];k++)length1++; if(length1length){index=i;length=

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档