- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
初始条件串S存在.ppt
4.1 串的抽象数据类型的定义
4.2 串的表示和实现
4.3 串的模式匹配算法
字符串: 简称串,是特殊的线性表,其特殊性主要在于表中的每个元素是一个字符,以及由此而要求的一些特殊操作。
长度:一个串中包括的字符个数。长度为零的串称为空串。
4.1 串的抽象数据类型的定义
子串:字符串s1中任意个连续的字符组成的子序列s2被称为是s1的子串,而称s1是s2的主串。
位置:子串在主串中的位置是以子串的第一个字符在主串中的字符序号(下标+1)。
相等:两个串的长度相等,并且对应位置上的字符都 相等。
串的数据对象约束为字符集。
线性表的基本操作大多以“单个元素”为操作对象,而串的基本操作通常以“串的整体”作为操作对象。
串的逻辑结构和线性表的区别:
串的抽象数据类型的定义如下:
ADT String {
数据对象:
D={ ai |ai∈CharacterSet,
i=1,2,...,n, n≥0 }
数据关系:
R1={ ai-1, ai | ai-1, ai ∈D,i=2,...,n }
串是有限长的字符序列,由一对双引号相括,如: ? a string ?
基本操作:
……
StrAssign (T, chars)
StrCopy (T, S)
DestroyString(S)
StrEmpty (S)
StrCompare (S, T)
StrLength(S)
Concat (T, S1, S2)
基本操作:
SubString (Sub, S, pos, len)
Index (S, T, pos)
Replace (S, T, V)
StrInsert (S, pos, T)
StrDelete (S, pos, len)
ClearString (S)
} ADT String
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 存在。操作结果:若S ? T,则返回值 ? 0; 若S ? T,则返回值 ? 0; 若S ? T,则返回值 ? 0。StrLength (S) 初始条件:串 S 存在。 操作结果:返回 S 的元素个数,称为串的长度。
Concat (T, S1, S2) 初始条件:串 S1 和 S2 存在。 操作结果:用 T 返回由 S1 和 S2 联接而成的新串。 例如: Concate( T, ?man?, ?kind?),得 T = ?mankind? SubString (Sub, S, pos, len) 初始条件:串 S 存在,1≤pos≤StrLength(S) 且 0≤len≤StrLength(S)-pos+1。 操作结果: 用 Sub 返回串 S 的第 pos 个字符起长度为 len 的子串
。
例如:SubString( sub, ?commander ?, 4, 3)
求得 sub = ?man ? ;
Index (S, T, pos) 初始条件:串S和T存在,T是非空串1≤pos≤StrLength(S)。 操作结果: 若主串 S 中存在和串 T 值相同的子串, 则返回它在主串 S 中第pos个字符之后第一次出现的位置;否则函数值为0。 “子串在主串中的位置”意指子串中的第一个字符在主串中的位序。
假设 S = ?abcaabcaaabc ?, T = ?bca ?
Index(S, T, 1) = 2;
Index(S, T, 3) = 6;
Index(S, T, 8) = 0;
Replace (S, T, V) 初始条件:串S, T和 V 均已存在,且 T 是非空串。 操作结果:用 V 替换主串 S 中出现的所有与(模式串)T 相等的不重叠的子串。
例如:假设 S = ?abcaabcaaabca?, T = ?bca ?若 V = ?x ?, 则经置换后得到 S = ?axaxaax ?
若 V = ?bc ?, 则经置换后得到 S = ?abcabcaabc?
Str
您可能关注的文档
最近下载
- 创新农村公共服务管理模式,推进乡村振兴.pptx VIP
- 学校食堂承包经营及餐饮服务投标方案(技术方案).pdf
- 2022年中国银行公司客户经理考试总题库.doc
- 中国哲学史12-两汉经学.ppt VIP
- 中国康复类医疗器械产业加速腾飞,正迎来黄金发展期——2023大型现状调查报告(先进制造2024前沿第9期).docx
- 电力系统继电保护及安全自动装置运行评价规程 QGDW 10395-2022.docx VIP
- 锚杆静压桩施工设计方案.doc VIP
- 早产儿贫血诊断与治疗的临床实践指南(2025年).pptx VIP
- (高清版)DG∕TJ 08-88-2021 建筑防排烟系统设计标准.pdf VIP
- 《寄生虫学检验》课件——结膜吸吮线虫.pptx VIP
文档评论(0)