- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章 字符串、数组和广义表 4.1 字符串的基本概念 4.2 字符串的存储结构 4.3 字符串的模式匹配 4.4 数组的基本概念 4.5 矩阵的压缩存储 4.6 广义表 4.7 典型例题 4.1字符串基本概念 字符已成为非数值应用重要的处理对象.如文字编辑,情报检索,自然语言翻译和各种事务处理系统等。 字符串是由某字符集上的字符所组成的任何有限字符序列.当一个字符串不包含任何字符时,称它为空字符串。一个字符串所包含的有效字符个数称为这个字符串的长度。一个字符串中任一连续的子序列称为该字符串的子串。包含子串的串相应地称为主串。在C语言中,字符串常量是用一对双引导括起来若干字符来表示。通常称字符在序列中的序号为该字符在串中的位置,子串在主串中的位置则以子串的第一个字符在主串中的位置来表示. 例4.1:假如a,b,c,d为如下的四个串: a=“BEI”,b=“JING” c=“BEIJING”,d=“BEI JING” 则它们的长度为:3,4 ,7和8;并且a和b都是c和d的子串;a在c和d中的位置都是1;而b在c中的位置是在d中的位置是5。 另外,每个字符串的最后一个有效字符之后有一个字符串结束符,记为‘\0’。字符串通常存于足够大的字符数组中。 ★如要称两个串是相等的,当且仅当这两面个串的值相等。也就是说,只有当两个串的长度相等,并且各对应位置的字符都相等时才相等。 4.2字符串的存储结构 对于字符串常量,只需作为一个字符的序列存储。对于字符串变量,赋给它一个串名,对串运算时,通过变量名访问其值。其存储分配有两种形式,一是将字符串设计成一种结构类型(如pascal语言和c语言中,字符串都是用字符数组来实现),从字符串名可直接访问到字符串值,字符串值的存储分配是在编译时完成的;另一是字符串值的存储分配在程序运行时完成,在字符串名和字符串值之间需建立一个对照表(称为串名的存储映象),字符串的访问通过串名的存储映象进行。我们称前一种为顺序存储结构,后一种为链式存储结构。 4.2.1串的存储结构 和线性表的顺序存储结构类似,用一组地址连续的存储单元存储串的字符序列。在C语言中用一维数组来实现。 (一)紧缩格式 假定,一个存储单元可存放K个字符,而且给出的串长度为N,那么此字符串的字符串值就要占[N/K]个存储单元 紧缩格式是以字符为单位依次将字符存放在存储单元里。(PASCAL语言中的紧缩数组) (二)非紧缩格式 在一个存储单元中存放一个字符,所需存储单元个数就是串长。紧缩格式可节省存储空间,但在进行串运算时需要花费较时间去分离同一存储单元中的字符。 4.2.2串的链式存储结构 和线性表的链式存储结构类似,也可采用链表方式存储串值。由于串结构的特殊性——结构中的每个数据元素是一个字符,则可用链表存储串值时,存在一个“结点大小”的问题,即每个结点可以存放一个字符,也可存放多个字符。 head 结点大小为4示图 head 结点大小为1示图 4.3 字符串的模式匹配 设s和t是给定的两个串,在串s中寻找等于t的子串的位置的过程称为模式匹配,其中,s串称为主串,t串称为模式,如在s中找到等于t的子串,则称匹配成功,并返回模式t在s串的序号:反之匹配失败,并返回于序号为零 。 例4.2 : 1、s=“abcdefg”,t=“efg” 则模式t在主串s中的序号等于5 2、s=“abcdefg”,t=“abcdg” 则t在s中的序号等于0 3﹑s=“abcdefabc”,t=“abc” 如从s串的第一个字符开始搜索则序号等于1;如从s第三个字符开始搜索,则序号等于7。 4.3.1模式匹配的BF算法 算法的基本思想是:从主串s的第一个字符起和模式的第一趟匹配。第一个字符比较之,若相等,则继续逐个比较后续字符,否则从主串的第二个字符起再重新和模式的字符比较之。依次类推,直至模式t中的每个字符依次和主串s中的一个连续的字符序列相等,则称匹配成功,函数值为和模式t中第一个字符相等的字符在主串s中的序号,否则称匹配不成功,函数值为零。 如果s=“ababcabcacbab” t=“abcac” t在s中的模式匹配过程如下 i=2 第一趟匹配 a b a b c a b c a c b a b a b c j=2
您可能关注的文档
- 第四周周三化学实验熔点的测定20130317.ppt
- 第四周图形创意思维基础——联想 2.ppt
- 第四天 时态语态.ppt
- 第四天 用户管理.ppt
- 第四天 编程方法.ppt
- 第四天销售支持.ppt
- 第四天:《金裕产品强化训练篇》(nxpowerlite).ppt
- 第四套(运用渐变.ppt
- 第四套人民币1980年100元连体钞.ppt
- 第四套人民币1980年2元.ppt
- Unit7Happy Birthday!单元语法精炼与写作专练(含答案)人教版(2024)英语七年级上册.docx
- 福建省泉州第一中学2025-2026学年九年级上学期第一次月考语文试题.docx
- 第8课《〈世说新语〉二则》同步练习(含答案) 2025-2026学年统编版语文七年级上册.docx
- 高速事故应急练习题库及答案.docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第1讲--词汇(含答案).docx
- 牛津译林版九年级上册Unit 1 Know yourself知识过关第2讲--短语句型(含答案).docx
- 教版(2024)七年级下册Unit1单词巩固(一) 七上第一部分单词复习课件.pptx
- 人教版(2024)七年级下册Unit1单词巩固(二) 七上第二部分单词复习课件.pptx
- 译林版(2024)八年级上册Unit 1 Friendship周末练习作业(含答案).docx
- 化工防腐安全练习题库及答案.docx
文档评论(0)