(4)--lecture4数据结构数据结构.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

*k=1;j=2;while(jtLengthS[i+k]==T[j]){++k;++j;}if(j==tLength)returni;else++i;//重新开始下一次的匹配检测*4.4正文编辑━串操作应用举例*word和WPS都是常用到的正文编辑工具,可以完成查找、插入、删除和修改等基本操作。整个文本可以作为一个正文串,每行视为一个子串,文本的基本操作可由字符串的操作来实现。为方便确定操作的位置,对正文的每一行,建一种索引信息,称为行表。*main(){floata,b,max;scanf(?%f,%f?,a,b);ifabmax=a;elsemax=b;};例如:一段C的源程序正文:以字符串的形式配合行表来存储*行号起始地址长度1002008101208171022252410324917104266151052813200↙;}↙;b=xamesle↙;a=xambafi↙;)b,a,?f%,f%?(fnacs↙;xam,b,ataolf↙{)(niam201202…正文字符串行表208*在行内插入或删除若干字符:如果没有超出行表中该行的长度,则修改正文的存储区及行表;如果超出行分配给该行的存储空间,则需要为该行重新分配正文串的存储空间,并修改行表。如要插入或删除整行:则需对行表进行相应的插入或删除。*本章学习要点*1.熟悉串的七种基本操作的定义,并能利用这些基本操作来实现串的其它各种操作的方法。2.熟练掌握在串的定长顺序存储结构上实现串的各种操作的方法。3.了解串的堆存储结构以及在其上实现串操作的基本方法。4.了解串操作的应用方法和特点。KMP算法高效方法改进思想希望无需回溯地在字符串中查找模式串当发生一个不匹情况时,希望利用模式串中的不匹配字母和失配位置等相关信息确定下一步继续搜索的位置Knuth-Morris-Pratt算法—KMP其复杂度O(lengthS+lengthP)**改进的串匹配算法——KMP算法KMP—KnuthMorris和Pratt设计思想:让i不回溯,尽量利用已经得到的“部分匹配”的结果信息将模式向右“滑动”尽可能远的一段距离后,加快模式串的滑动速度。查找问题中的KMP算法**ababcabcacbababci=2,j=2失败;第1趟iiijababcabcacbabaij第2趟s1=p1;p0≠p1∴p0≠s1jjKMP算法J01234P模式abcacf(j)-1-1-10-1新起点j=f(j-1)+1=0*第3趟ababcabcacbababcaci=6,j=4失败ijijijijij第4趟ababcabcacbabaijs3=p1;p0≠p1∴p0≠s3J01234P模式abcacf(j)-1-1-10-1新起点j=f(j-1)+1=1*第5趟ababcabcacbabijas4=p2;p0≠p2∴p0≠s4第6趟ababcabcacbababcacijJ01234P模式abcacf(j)-1-1-10-1新起点j=f(j-1)+1=1s

文档评论(0)

158****6446 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档