第四章数据结构串.pptVIP

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 串 本章主要介绍下列内容 串类型的定义 串的表示和实现 串的模式匹配 4.1 串的类型定义 4.1.1 串的基本概念 串是由零个或多个字符组成的有限序列。串值必须用一对单引号括起来。 例如(1)string=‘string’ (2)S=‘中南林业科技大学’ (3)L=‘ ’ (4)A=‘123456789’ 一般串可以写成如下形式: S=‘a1a2 a3 a4…….an’ 其中等号左边的称为串的名,等号右边用单引号括起来的字符序列称为串的值。 假设主串为S1=‘T1T2…Tm’,模式串为S2=‘p1p2…pn’且mn.当主串第i个字符与模式第j个字符比较不等时,应于模式串第k(kj)个字符重新比较,此时不可能存在k’k,必满足下列关系式:模式串中前k-1个字符组成的字串与主串第i个字符之前长度为k-1个字符组成的子串相等。 ‘p1p2…pk-1’=‘Ti-k+1 Ti-k+2…Ti-1’ (4-1) T1 T2 … Ti-k+1 … Ti-1Ti ….. Tm K-1 主串S1 i P1 P2 … Pk-1 Pk … Pj …. Pn K-1 j 模式串S2 同时,我们也可以从已得到的“部分匹配”的结果中得到一个关系式:模式串第j字符之前长度为k-1个字符组成的字串与主串中第i个字符之前长度为k-1个字符组成的子串相等,即 ‘Pj-k+1Pj-k+2…Pj-1’=‘Ti-k+1Ti-k+2 …Ti-1’ (4-2) T1 T2 … Ti-k+1 … Ti-1Ti ….. Tm K-1 主串S1 i P1 P2 … Pj-k+1 … Pj-1 Pj ….. Pn K-1 模式串S2 j 由式(4-1)和(4-2)得: ‘p1p2…pk-1’= ‘Pj-k+1Pj-k+2…Pj-1’ P1 P2 … Pk-1 … Pj-k+1Pj-k+2 … Pj-1 Pj … Pn K-1 模式串S2 K-1 (4-3) 由(4-3)可知,若模式中存在这两个子串,在匹配过程中,当主串第i个字符与模式串第j个字符比较不等时,只需与模式串中第k个字符重新开始进行比较。下面来求k值。 假设next[j]=k,则next[j]表示当主串第i个字符与模式串第j个字符比较不等时,在模式中需重新和主串第i个字符进行比较的字符位置。 next函数的定义: Next[j]= 0 当j=1时 Max{k|1kj且‘P1P2…Pk-1’=‘Pj-k+1…Pj-1’ 且此集合不空 1 其它情况 * * 退出 一、基本概念 串的长度:指字符串中包含的字符的个数。例如 例如 S=‘abcdef’,串S的长度为6。 空串和空格串是有区别的,空串指串的长度为0的串。空格串指由一个或多个空格字符组成的串。 串中任意个连续的字符组成的子序列称为该串的子串。同时包含子串的串称为主串。空串是任何串的子串。任意串都是本身的子串。在串中通常给字符以序号标记,按从左至右以阿拉伯数字‘1’开始依次递增标记,这些字符在序列中的序号称为该串在串中的位置。子串在主串中的位置则以子串的第一个字符在主串中第一次出现的位置来表示。 判断两个串是否相等,充要条件是当且仅当这两个串的值相等。 从字符的定义来看,字符串属于成分类型为字符的线性表。因此,对线性表的一切运算都能够对字符串进行;从字符的表示来看,它是字符的紧密排列,是一个有机的整体,能够用它来描述事物的基本属性,如利用字符串描述职工的姓名、产品的名称、电话号码等。 二、串的抽象数据类型 串的抽象数据类型的定义包括数据对象、数据关系和基本操作的定义,其中数据对象为字符集。 虽然串的逻辑结构和线性表的逻辑结构相似, 是它们的基本操作有很大区别。对于线性表的基本操作大多以“单一元素”作为操作对象;而对串而言,通常以“串的整体”作为操作对象,例如在串的某个位置上进行插入或删除,操作对象是一个个子串。 串的抽象数据类型定义如下: ADT S

文档评论(0)

精华文档888 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档