数据结构chapter4串.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 串(String) 第4章 串(String) 一、串的定义 二、串的抽象数据类型 三、串的基本操作 三、串的基本操作 三、串的基本操作 三、串的基本操作 四、串的基本操作举例 4.2 串的表示和实现 一、定长顺序存储表示 一、定长顺序存储表示 一、定长顺序存储表示 串连接操作的实现算法 串连接操作的实现算法 串连接操作的实现算法 串连接操作的实现算法 一、定长顺序存储表示 二、堆分配存储表示 二、堆分配存储表示 串连接操作的实现算法 串插入操作的实现算法 三、块链存储表示 三、块链存储表示 本章学习要点 * 第4章 串(String) 4.1 串的基本概念 4.2 串的表示和实现 字符串(简称串)对大家来说并不陌生。在解决实际问题时,经常会用到串操作。 一般地说,不同问题中所遇到的字符串具有不同特点。例如,在某些问题中,字符串都是100来个字符,比较均匀;而在有些问题中,一部分字符串很长,另一部分字符串很短,起伏较大。 显而易见,在处理不同特点的字符串时,应采用不同的存储结构,只有这样,才能获得较高的效率。 在本章中,我们将讨论串的几种存储结构和一些基本操作。 4.1 串类型的定义 一、串的定义 串是由n(n≥0)个字符组成的序列,常记为 s=a1a2…an 其中, ⑴ s为串的名字 。 ⑵ a1a2…an称为串的值。为了不至于与变量名或常量混淆,串的值一定要用单引号括起来,但单引号本身不属于串。 ⑶ 串中字符的数目n称为串的长度。长度为0的串称为空串,记为φ 。 ⑷ 串中任意个连续的字符组成的子序列称为该串的子串,原串称为主串. ⑸ 通常把字符在序列中的序号称为该字符在串中的位置(从1开始)。 ⑹ 子串在主串中的位置指的是子串的第一个字符在主串中的位置。 ⑺ 称两个串相等当且仅当串的值相等,即串的长度相等,而且对应位置上的字符相等。 可以看出,串和线性表都是有限的序列,逻辑结构很相似。但是,他们有两点区别: ⑴ 串的每个数据元素为单个字符,数据对象是某个字符集。 ⑵ 串的基本操作和线性表的基本操作差别较大。 线性表的基本操作大多以“单个元素”为操作对象,例如,获取一个数据元素、插入一个元素以及删除一个元素等。 串的基本操作很少以单个字符为操作对象,而大多以“串的整体”为操作对象,例如,在串中取一个子串、在串中插入/删除一个子串等。 P71用抽象数据类型 String 描述了串及其基本操作。 ADT String { 数据对象:D={ai|ai∈CharacterSet, i=1, …,n, n≥0} 数据关系:R1={ai-1,ai|ai-1,ai∈D, i=2, …,n} 基本操作: StrAssign(T, chars) 初始条件:chars是字符串常量 操作结果:生成一个值为chars的串T。 StrCopy(T, S) 初始条件:串S已经存在。 操作结果:由串S复制得到串T。 … … … … }ADT String StrAssign(S, chars) 初始条件: chars是字符串常量 操作结果:生成一个值为chars的串S。 1.串赋值操作 StrCopy(T, S) 初始条件:串S已经存在。 操作结果:由串S复制得到串T。 2.串复制操作 StrEmpty(S) 初始条件:串S已存在。 操作结果:若S为空串,则返回TRUE,否则FALSE。 3.判空操作 StrCompare(S, T) 初始条件:串S、T已存在。 操作结果:若ST,则返回值0; 若S=T,则返回值=0; 若ST,则返回值0。 4.串比较操作 Concat(T, S1, S2) 初始条件:串S1、S2已存在。 操作结果:用T返回由S1与S2连接而成的新串。 6.串连接操作 StrLength(S) 初始条件:串S已存在。 操作结果:返回串S中的字符个数。 5.求长度操作 SubString(Sub, S, pos, len) 初始条件:串S已存在,且1≤pos≤StrLength(S), 0≤ len ≤ StrLength(S)-pos+1 操作结果:用Sub返回S中从第pos个字符起长度为len 的子串。 7.取子串操作 Index(S, T, pos) 初始条件:串S、T已存在,且1≤pos≤StrLength(S)。 操作结果:返回S中从第pos个字符起子串T首次出现的 位置。 8.求子串位置操作 Str

文档评论(0)

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

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

1亿VIP精品文档

相关文档