网站大量收购独家精品文档,联系QQ:2885784924

实验04:串应用KMP算法.ppt

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

实验五 串应用--KMP算法实验 实验 串应用--KMP算法实验 数据结构实验与课程设计 2012年xx月xx日 深圳大学计算机系朱安民 一、实验目的 * 一、实验目的 掌握串结构的基本概念 掌握串结构的存储结构 掌握顺序串类的定义 掌握串的KMP模式匹配算法及其C++语言的实现 实验五 串应用--KMP算法实验 二、实验要求 * 二、实验要求 熟悉C++语言编程 熟练使用C++语言实现顺序串类的定义 完成KMP的模式匹配算法 实验五 串应用--KMP算法实验 1、问题描述 * 三、实验内容 在主串S中,从位置pos开始查找是否存在模式子串T,如果存在,则返回主串中的位置,如果不存在,则返回0。 实验五 串应用--KMP算法实验 2、算法 * 三、实验内容 KMP算法思想: 将主串和模式子串从第一位进行一一比较,当一趟匹配过程中出现字符比较不等(失配)时,不需回溯主串指针i,而是利用已经得到的“部分匹配”的结果,将模式子串向右“滑动”尽可能远的一段距离(next[j])后,继续进行比较。 实验五 串应用--KMP算法实验 具体方法--求next[j] * 按照下列公式求出模式子串t的next[j]函数 -1 当j=0时 next[j]= max{k|0kj且t0t1…tk-1=tj-ktj-k+1…tj-1}当此集合非空   0 其它情况 设i为主串当前比较字符的下标,j为模式子串当前比较字符的下标,令i的初始值为start,j的初始值为0。 实验五 串应用--KMP算法实验 具体方法—KMP算法: * (1) 当si=tj时,i和j分别增1再继续比较; 否则,i不变,j改变为next[j]值再继续比较; (2) 这样的循环过程直到变量i大于等于主串的长度或j大于等于子串的长度时终止。若变量i大于等于主串的长度,则返回0,匹配不成功;若变量j大于等于子串的长度,则返回匹配时主串位置,匹配成功。 实验五 串应用--KMP算法实验 3、输入 * 三、实验内容 第一个输入t,表示有t个实例 第二行输入第1个实例的主串,第三行输入第1个实例的模式串 以此类推 实验五 串应用--KMP算法实验 4、输出 * 三、实验内容 第一行输出第1个实例的模式串的next值 第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0 以此类推 实验五 串应用--KMP算法实验 5、输入样本 * 三、实验内容 3 qwertyuiop tyu aabbccdd ccc aaaabababac abac 实验五 串应用--KMP算法实验 6、输出样本 * 三、实验内容 -1 0 0 5 -1 0 1 0 -1 0 0 1 8 实验五 串应用--KMP算法实验 * 四、实验步骤 1、顺序串类的定义,包括构造函数、析构函数 2、模式子串的next[j]函数 3、KMP匹配算法函数 4、主程序 实验五 串应用--KMP算法实验 * 1 串类定义 实验五 串应用--KMP算法实验 * 2 赋值与next函数 实验五 串应用--KMP算法实验 * 3 KMP内部函数 实验五 串应用--KMP算法实验 * 4 KMP外部函数 实验五 串应用--KMP算法实验 * 5 主函数 实验五 串应用--KMP算法实验 实验五 串应用--KMP算法实验

文档评论(0)

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

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

1亿VIP精品文档

相关文档