ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:50.74KB ,
资源ID:20286905      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20286905.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(4数据结构之串Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

4数据结构之串Word格式文档下载.docx

1、s1=”data ”,s2=”structure”, 执行Concat(t, s1, s2)后,t=”data structure”。联结函数符合结合律,不符合交换律。即:Concat (t, s1, s2,s3)= Concat (t, Concat (t, s1, s2),s3) )= Concat (t, s1, Concat (t, s2, s3) )3 求串的长度:StrLength (s),得串s中的元素个数 例如:s=”data structure”,则串的长度为14。4 求子串操作SubStr (s, i, m,t), 求得由主串s的第i个字符开始,长度为m子串t。s=”dat

2、a structure”,执行 SubString ( s, 6, 6,t),得t=”struct”。5 判两个串是否相等:StrEqual(s, t),当两个串s和t的长度相等,且两个串对应位置的每个字符都相等, 返回TRUE,否则返回FLASE。s=”data structure”,t=”data structure”,执行 StrEqual( s, t),得TURE。6 求子串在串中的序号(又称定位)Index (s, t),若主串s中存在和串t值相同的子串, 则返回它在主串s中第1个字符之后第一次出现的位置; 否则函数值为0。 如: s=”data structure”,t=”stru

3、ct”,执行 Index( s, t),返回6。 s=”data structure”,t=”date” ,执行 Index( s, t),返回0。7 置换操作Replace (s, t, v),若主串s中存在和串t值相同的子串, 则用v来替换。注意用v替换主串s中出现的所有与t相等的不重叠的子串。s=”abcabcababcaab” ,t=”cab”,v=”c” ,执行 Replace( s,t,v),得:s=”abccabcaab”。 4.2 串的存储结构一、行结构unsigned char String 256;/ 用户可在255以内定义最大串长/ 0号单元存放串的长度这种存储结构是一种

4、定长的顺序存储结构,较适应于源程序等的存储。二、 堆结构(1)串值的存储 struct strstore char *ch;/若是非空串,则按串长分配存储区,否则ch为NULLint pos;/ pos是空闲区的首地址(已占用空间)的长度;其中:pos是空闲区的首地址(已占用空间)的长度,s1和s2是串名,17和15是子串的长度(2)串名的存储串 名 开始地址 串的长度 结束地址开始地址例:文本编辑 P 串名110004021040163105635410911451105(3)操作: 插入、删除、排版等 4.3 模式匹配 s= “s1 s2,sn”,t= “t1 t2tm”,mn在s中是否存

5、在长度为m的子串“si si+1si+m-1”,使得“si si+1 si+m-1”= “t1 t2tm”。称s为文本,t为模式。 s= “s1 s2,si si+1si+m-1sn”,“t1 t2tm ”4.3.1 串匹配(搜索)算法一、 基本思想从文本s的第一个字符起和模式t的第一个字符进行比较,若相等,则继续逐个比较后续字符,否则从文本的第二个字符起重新和模式的字符进行比较。依次类推,直至si=t1, si+1=t2,si+m-1=tm止,则称匹配成功,函数值为i ,否则称匹配不成功,函数值为零。二、 示例s = abaabaaccabaabcabc,t = abaabca第一趟文本 a

6、 b a a b a a c c a b a a b c a b ci=16 a b a a b cj=16第二趟i=2a j=1第三趟i=34 a bj=12第四趟i=48 a b a a b j=15第五趟i=5 a第六趟i=67 a b 第七趟i=78第八趟i=8 a 第九趟i=9第十趟i=1017 a b a a b c aj=18在i=10, j=8时匹配成功, 返回10。模式匹配算法int Index( s, t) / 返回子串t在主串S中的位置。 若不存在,则函数值为0。 i = 1; j = 1; while (i = s0 & j t0 ) return i-t0; else

7、 return i; / IndexO(m*n)。问题:模式匹配算法的时间复杂度能否进一步的改善呢?3.2 KMP(Knuth-Morris-Pratt)算法解决的问题是:向右“滑动”多少呢?考察 a b a a b a a c c a b a a b c a b c a b a a b c 结论:模式匹配过程中没有回溯。i=68 (a b)a a b j=35 (a)b j=2i=1017 int KMP(SString s, SString t) = s0-t0+1 & if (j=0 | si = tj) +i; / 继续比较后继字符 j = next(j); / 模式串向右移动 t.len ) return i-t0; else return 0; / KMPO(m+n)模式串的next函数的定义:J67Tabcnextj

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1