- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
课前导学 4.1 串类型的定义 4.2 串的表示和实现 【学习目标】 1. 理解串类型定义中各基本操作的特点,并能正确利用它们进行串的其它操作。2. 理解串类型的各种存储表示方法。 【重点和难点】 了解串类型定义中各基本操作的定义以及串的实现方法,并学会利用这些基本操作来实现串的其它操作。 【课前思考】 4.1 串类型的定义 1. 基本概念 串(string):由0个或多个字符组成的有限序列,也称字符串。记为: s=’ a1a2a3……an ’ (n≥0) 式中s是串的名,a1a2a3……an是串的值,ai(1≤i≤n)可以是字母、数字或其它字符。 串长度:串中字符的数目n。 空串:不含任何字符的串,串长度=0 空格串:仅由一个或多个空格组成的串 子串:由串中任意个连续的字符组成的子序列 主串:包含子串的串。 串相等的条件:当两个串的长度相等且各个对应位置的字符都相等时才相等。 注意:(1)串值必须用一对单引号括起来 (2)串值大小是按词典次序进行比较的 StrCompare(‘data’,’Stru’)0StrCompare(‘cat’,’case’)0显然,只有在两个串的长度相等且每个字符一一对等的情况下称两个串相等。 2. 串的抽象数据类型的定义 ADT String {数据对象:D={ ai |ai∈CharacterSet, i=1,2,...,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。 DestroyString (S) 初始条件:串S存在。 操作结果:串S被销毁。StrEmpty (S) 初始条件:串S存在。 操作结果:若S为空串,则返回TRUE,否则返回FALSE。StrCompare (S, T) 初始条件:串S和T存在。 操作结果:若ST,则返回值0;若S=T, 则返回值=0;若ST,则返回值0。StrLength (S) 初始条件: 串S存在。 操作结果:返回S的元素个数,称为串的长度。 Concat (T, S1, S2) 初始条件:串S1和S2存在。 操作结果:用T返回由S1和S2联接而成的新串。SubString (Sub, S, pos, len) 初始条件:串S存在,1≤pos≤StrLength(S) 且 0≤len≤StrLength(S)-pos+1。 操作结果:用Sub返回串S的第pos个字符起长度为len的子串。Index (S, T, pos) 初始条件:串S和T存在,T是非空串,1≤pos≤StrLength(S)。 操作结果:若主串S中存在和串T值相同的子串, 则返回它在主串S中第pos个字符之后第一次出现的位置; 否则函数值为0。 Replace (S, T, V)初始条件:串S,T和V存在,T是非空串。操作结果:用V替换主串S中出现的所有与T相等的不重叠的子串。 StrInsert (S, pos, T)初始条件:串S和T存在,1≤pos≤StrLength(S)+1。操作结果:在串S的第pos个字符之前插入串T。 StrDelete (S, pos, len)初始条件:串S存在,1≤pos≤StrLength(S)-len+1。操作结果:从串S中删除第pos个字符起长度为len的子串。 ClearString (S)初始条件:串S存在。 操作结果:将S清为空串。} ADT String 在以上操作中,串赋值StrAssign、串比较StrCompare、求串长StrLength、串联接Concat以及求子串SubString等五种操作构成串类型的最小操作子集,即这些操作不可能利用其他串操作来实现。 思考:串的基本操作和线性表一样,无非也就是查找、插入和删除等,那么它们能否用线性表的操作来替代呢? 串的基本操作和线性表有很大的区别,同样是查找、插入和删除,但对线性表而言操作对象是“数据元素”,而对串言,是以整个串作为操作对象。 由此可见,串类型不能和线性表类型混为一谈。 4.2 串的表示和实现 1.定长顺序存储 用一组地址连续的存储单元存储串值的字符序列,
本人在医药行业摸爬滚打10年,做过实验室QC,仪器公司售后技术支持工程师,擅长解答实验室仪器问题,现为一家制药企业仪器管理。
文档评论(0)