数据结构课件 第4篇 串.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 计算机上的非数值处理的对象基本上都是字符串数据。字符串 (string) 一般简称为串。 * 第 4 章 串 4.1 串的逻辑结构 4.2 串的存储结构 4.1 串的逻辑结构 4.2 串的存储结构 4.1 串的逻辑结构 例4-1 x = ?computer ? 以下是串的 3 个例子: * 例4-2 y = ?student-1 ? 例4-2 z = ?data structure ? 串的定义 串的基本操作 * 其中: 串是由零个或多个字符组成的有限序列。记为: s = ?a1 a2 … an ? ( n ≥ 0 ) s 是串的名,用单引号括起来的字符序列是串的值; ai(1≤i≤n)可以是字母、数字或其他字符; n 是串中字符的数目,称为字符串的长度。 4.1.1 串的定义 零个字符的串称为空串 (null string),它的长度为零。用 “?” 来表示空串。 * 当且仅当两个字符串的值相等时,也就是说,只有当两个字符串的长度相等,并且各个对应位置上的字符都相等时,则称这两个字符串是相等的。 串中的任意连续的字符组成的子序列称为该串的子串;包含子串的串相应地称为主串。 通常称字符在序列中的序号为该字符在串中的位置。子串在主串中的位置则以子串的第一个字符在主串中的位置来表示。 例4-4 假设 a 、b 、c 、d 为如下 4 个字符串: a = ?beijing?,b = ?bei?,c = ?jing?,d = ?bei?jing? 则: a 的长度为 7,b 的长度为 3,c 的长度为 4,d 的长度为 8; b 和 c 都是 a 和 d 的子串,且 b 在 a 和 d 中的位置都是 1,而 c 在 a 中的位置是 4 ,在 d 中的位置是 5 。 串 a ,b ,c ,d 彼此都不相等。 * 由一个或者多个空格组成的串称为空格串(blank string),它的长度为串中空格字符的个数。 请注意:空格串不是空串。 * * 4.1.2 串的基本操作 ? StrAsign (S, chars ) 初始条件:chars 是字符串常量。 操作结果:生成一个其值等于 chars 的串 S。 ? StrLength ( S ) 初始条件:串 S 已经存在。 操作结果:返回串 S 的元素个数,称为串的长度。 串的逻辑结构和线性表极为相似,区别仅在于串的数据对象约束为字符集 (character set)。 但是,串的基本操作和线性表有很大的差别。在线性表的基本操作中,大多是以 “单个元素” 作为操作对象,比如:在线性表中查找某个元素、在线性表中求取某个元素、在线性表某个位置上插入一个元素以及删除一个元素等;而在串的基本操作中,通常以 “串的整体” 作为操作对象,比如:在串中查找某个子串、在串中求取某个子串、在串的某个位置上插入一个子串以及删除一个子串等。 * 在串的 13 种基本操作操作中,以下 5 种操作构成串类型的最小操作子集,即:这些操作不可能利用其他操作来实现: ? 串赋值 StrAsign ? 串比较 StrCompare ? 求串长 StrLength ? 串连接 StrCat ? 求子串 SubString 而其他串操作(除了串清除操作 StrClear 和串销毁操作 StrDestroy外)均可以在这个最小操作子集上实现。 * 如果在程序设计语言中,串只是作为输入或者输出的常量出现,则只需要存储此串的串值,即字符序列即可。但是在多数非数值处理的程序中,串也以变量的形式出现。串有 3 种机内表示方法。 定长顺序存储结构 4.2 串的存储结构 * 堆分配存储结构 块链存储结构 串的定长顺序存储表示类似于线性表的顺序存储结构,用一组地址连续的存储单元存储串值的字符序列。在串的定长顺序存储结构中,按照予定义的大小,为每个定长的串变量分配一个固定长度的存储区,则可以用定长数组描述。 予定义大小 MAXSTRLEN 为串变量分配一个固定长度的存储区 * 4.2.1 定长顺序存储结构 1. 定长顺序存储表示 # define MAXLEN 40

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档