数据结构c语言版(串)题稿.pptVIP

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 串 通常将子串在主串中首次出现时的该子串的首字符对应的主串中的序号,定义为子串在主串中的序号(或位置)。例如,设A和B分别为 A=“This is a string” B=“is” 则B是A的子串,A为主串。B在A中出现了两次,其中首次出现所对应的主串位置是3。因此称B在A中的序号(或位置)为3 求子串: Status SubString(SString Sub, SString S, int pos, int len) { // 用Sub返回串S的第pos个字符起长度为len的子串。 //其中,1≤pos≤StrLength(S)且0≤len≤StrLength(S)-//pos+1 。 if ( pos1 || posS[0] || len0 || lenS[0]-pos+1 ) return ERROR; Sub[1..len] = S[pos..pos+len-1]; Sub[0] = len; return OK; }//SubString for ( i=S.length-1;i=pos-1; --1) //为插入T而腾出位置 S.ch[i+T.length] = S.ch[i]; S.ch[pos-1..pos+T.length-2] = T.ch[0..T.length-1]; //插入T S.Length += T.length; } return OK; } // StrInsert //====ADT String的表示与实现==== //----串的堆分配存储表示---- Typedef struct{ char *ch ; //若是非空串,则按串长分配存储区,否则ch为NULL int length; //串长度 }HString; //----基本操作的函数原型说明---- Status StrAssign ( HString T, char *chars ); //生成一个其值等于串常量chars的串T int StrLength ( HString S ); //返回S的元素个数,称为串的长度 int StrCompare (HString S, HString T ) //若ST,则返回值0;若S=T,则返回值=0;若ST,则返回值0 Status ClearString ( HString S ); //将S清为空串,并释放S所占空间。 Status Concat ( HString T, HString S1, HString S2 ); //用T返回由S1和S2联接而成的新串。 HString SubString ( HString S, int pos, int len ); // 1≤pos≤StrLength(S)且 0≤len≤StrLength(S)-pos+1。 //返回串S的第pos个字符起长度为len的子串。 //----基本操作的算法描述---- Status StrAssign ( HString T, char *chars ); //生成一个其值等于串常量chars的串T if ( T.ch ) free ( T.ch ) ; //释放T原有空间 for ( i=0, c=chars; c; ++i, ++c ); //求chars的长度i if ( !i ) { T.ch = NULL; T.length = 0; } else { if (!(T.ch = (char *) malloc(i*sizeof(char)))) exit (OVERFLOW); T.ch[0..i-1]= chars[0..i-1]; T.Length = i; } return OK; }//StrAssign Status ClearString ( HString S ); //将S清为空串。 if ( S.ch ) { free ( S.ch ); S.ch = NULL; } S.Length = 0; return OK; }//ClearString int StrLength ( HString S ) { //返回S的元素个数,称为串的长度 return S.len

文档评论(0)

希望之星 + 关注
实名认证
文档贡献者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档