- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch4字符串(冲突_STEVEN-PC_2006-08-25 17-10-02)
一、主要内容: 1、串类型的定义 2、串的表示和实现 3、串操作的应用举例 二、基本要求: 了解串的应用; 掌握串的基本概念、顺序和链式存储结构; 掌握串的各种基本运算; 熟练掌握顺序存储结构上串的各种操作。 目录 4.1串的类型和定义 4.2串的表示和实现 4.3 串的模式匹配算法 4.1 串类型的定义 一、串和基本概念 非数值处理的对象基本上是字符串数据 串(string)(或称字符串)---- 由零个或多个字符组成的有限序列 记为: s = “a1a2...an” (n=0) ai(1=i=n)是字母,数字或其它字符 n称为串的长度,n=0的串称为空串(Null string) 子串----串中任意个连续字符组成的子序列 包含子串的串叫主串 子串在主串中的位置 ---- 子串的第一个字符在主串中的序号 二、串的抽象数据定义 ADT String { 数据对象:D = {ai | ai属于CharacteSet,i=1,2,...n, n=0} 数据关系: R1= {< ai-1., aj>| ai属于D, i=2,...n}。 基本操作: StrAssign(T,chars); StrCopy(T,S); StrEmpty (S); StrCompare(S,T); StrLength(S); ClearString(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); DestroyString(S) }ADT String 4.2 串的表示和实现 顺序表示 4.2.1 定长顺序表示 4.2.2 堆分配存贮表示 链式表示 4.2.3 块链存贮表示 用一组连续的存储单元存储串值的字符序列. 在C语言中,用字符“\0”表示串的终结,“\0”不计入串长. 另一种方法是定长数组表示一个串: 实现算法: // 用T返回S1和S2联接成的新串,若未截断,返回TRUE,否则返回FALSE Status Concat( SString T, SString S1, SString S2 ) { L1 = strLength( S1 ); L2 = strLength( S2 ); if( strLength( S1 ) + strLength( S2 ) = MAXSTRLEN ) { T[0,…, L1 – 1 ] = S1[ 0,…, L1 - 1]; T[L1, … L1 + L2 – 1 ] = S2[ 0, … , L2 – 1 ]; T[ L1 + L2 ] = ‘\0’; return TRUE; } else if( L1 MAXSTRLEN ) { T[ 0, … , L1 – 1 ] = S1[ 0, …, L1 – 1 ]; T[ L1, …, MAXSTRLEN – 1 ] = S2[ 0, …, MAXSTRLEN – L1 - 1 ]; T[ MAXSTRLEN ] = ‘\0’; } else { T[0,…, L1 ] = S1[0,…, L1 ]; return FALSE; } } Concat(T,S1,S2)的算法示意图 2.求子串SubString(Sub,S,pos,len) 算法4.3 分析:求s中从第pos个字符开始长度为len的子串。需判定所给的pos (pos=1pos=s.len) 、len (len=0len=s.len-pos+1)范围是否合法。 实现算法: Status SubString(SString &Sub,SString S,int pos,int len) { //用Sub返回串S的第pos个字符起长度为len的子串。 //其中,1posStrLength(S)且0lenStrLength(S)-pos+1。 if(pos1||pos>S[0]||len<0||len>S[0]-pos+1) return ERROR; Sub[1..len]=S[pos..pos+len-1]; Sub[0]=len; return 0K; }//SubStrlng 也是用一组连续的存储单元存储串值的字符序列. 但存储空
您可能关注的文档
- MF003501 ANT路测设备 ISSUE1.2.ppt
- MFPS XV Preliminary Version Local DCPOs, Local CPOs and Local Completions.pdf
- Microwin Point Of Sales Solutions.pdf
- Microwin POS Function-4.ppt
- mysql函数大全(PDF版).pdf
- NB4选型.pdf
- Normal Mechanics and Pathophysiology of the Shoulder.pdf
- OmniWin2011(精简).pdf
- OLeary2011Comp_PPT_Ch06.ppt
- part1-cvp.ppt
文档评论(0)