




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
4.10 编写对串求逆的递推算法。要求实现以下函数:void Reverse(StringType &s);/* Reverse s by iteration. */StringType是串的一个抽象数据类型,它包含以下6种基本操作:void InitStr(StringType &s); / 初始化s为空串。void StrAssign(StringType &t, StringType s); / 将s的值赋给t。s的实际参数是串变量。int StrCompare(StringType s, StringType t); / 比较s和t。若st,返回值0;若s=t,返回值=0;若st,返回值0。int StrLength(StringType s); / 返回s中的元素个数,即该串的长度。StringType Concat(StringType &s, StringType t); / 返回由s和t联接而成的新串。StringType SubString(StringType s, int start, int len); / 当1=start=StrLength(s)且0=len=StrLength(s)- start+1时, / 返回s中第start个字符起长度为len的子串,否则返回空串。/ 注意,不要使用 s = 的形式为 StringType 类型的变量赋值 ,/ 而要使用 StrAssign 函数!void Reverse(StringType &s)/* Reverse s by iteration. */ int i=0,j=StrLength(s)-1; char temp; while(it,返回值0;若s=t,返回值=0;若st,返回值0。int StrLength(StringType s); / 返回s中的元素个数,即该串的长度。StringType Concat(StringType &s, StringType t); / 返回由s和t联接而成的新串。StringType SubString(StringType s, int start, int len); / 当1=start=StrLength(s)且0=len=StrLength(s)- start+1时, / 返回s中第start个字符起长度为len的子串,否则返回空串。/ 注意,不要使用 s = 的形式为 StringType 类型的变量赋值 ,/ 而要使用 StrAssign 函数!void DelSubString(StringType &scrStr, StringType subStr)/* Remove all substring matching subStr from scrStr. */ StringType head,tail,S; int i; InitStr(head); InitStr(tail); for(i=1;i=StrLength(scrStr)-StrLength(subStr)+1;i+) if(!StrCompare(SubString(scrStr,i,StrLength(subStr),subStr) StrAssign(head,SubString(scrStr,1,i-1);StrAssign(tail,SubString(scrStr,i+StrLength(subStr),StrLength(scrStr)-i-StrLength(subStr)+1); StrAssign(scrStr,Concat(head,tail); i-; 4.17 编写算法,实现串的基本操作Replace(&S,T,V)。要求采用教科书4.2.1节中所定义的定长顺序存储表示,但不允许调用串的基本操作。要求实现以下函数:Status Replace(SString& s, SString t, SString v);/* 用串v替换串s中所有和串t匹配的子串。 */* 若有与t匹配的子串被替换,则返回TRUE;*/* 否则返回FALSE */定长顺序串SString的类型定义:typedef unsigned char SStringMAXSTRLEN+1; /* s0 is the strings length */注:这题在Status Replace(SString& s, SString t, SString v)函数前要写一个int Index(SString s, SString t,int pos )的函数。如下:int Index(SString s, SString t,int pos ) int i = pos; int j = 1; while( i= s0&j t0 ) return i - t0; else return 0;Status Replace(SString& s, SString t, SString v)/* 用串v替换串s中所有和串t匹配的子串。 */* 若有与t匹配的子串被替换,则返回TRUE;*/* 否则返回FALSE */ int flag = 0; int i,j,w,r; SString s1; for( i = 0; i = s0; i+ ) s1i = si; for( i = 1, j = 1; i = s10; ) w = Index( s1, t, i); if( !w ) while( i = s10 ) sj+ = s1i+; else while( i w ) sj+ = s1i+; for( r = 1; r = v0; r+ ) sj+ = vr; flag+; i += t0; s0 = -j; if( flag ) return TRUE; return FALSE;4.20 编写算法,从串s中删除所有和串t相同的子串。要求实现以下函数:Status DelSub(SString &s, SString t);/* 从串s中删除所有和串t匹配的子串。 */* 若有与t匹配的子串被删除,则返回TRUE;*/* 否则返回FALSE */定长顺序串SString的类型定义:typedef unsigned char SStringMAXSTRLEN+1; /* s0 is the strings length */注:这题在Status DelSub(SString &s, SString t)函数前要写一个int Index(SString s, SString t,int pos )的函数。如下:int Index(SString s, SString t,int pos ) int i = pos; int j = 1; while( i= s0&j t0 ) return i - t0; else return 0;Status DelSub(SString &s, SString t)/* 从串s中删除所有和串t匹配的子串。 */* 若有与t匹配的子串被删除,则返回TRUE;*/* 否则返回FALSE */ int flag = 0; int i,j,w; for( i = 1, j = 1; i = s0; ) w = Index( s, t, i); if( !w ) while( i = s0 ) sj+ = si+; else while( i w ) sj+ = si+; flag+; i += t0; s0 = -j; if( flag ) return TRUE; return FALSE;4.30 假设以定长顺序存储结构表示串,试设计一个算法,求串s中出现的第一个最长重复子串及其位置,并分析你的算法的时间复杂度。要求实现以下函数:void CommonStr(SString s, SString &sub, int &loc);/* 求串s中出现的第一个最长重复子串sub及其位置loc */定长顺序串SString的类型定义:typedef unsigned char SStringMAXSTRLEN+1; /* s0 is the strings length */void CommonStr(SString s, SString &sub, int &lo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 青海省高考数学试卷
- 通辽市中医院面部多层次注射技术专项技能考核
- 宁波镇海区中考数学试卷
- 建设工程专业施工承包合同
- 店面抵押合同
- 难点解析人教版八年级上册物理物态变化《熔化和凝固》难点解析试题
- 平顶山初三数学试卷
- 电子厂小时工合同
- 难点解析-人教版八年级上册物理《物态变化》达标测试试题
- 晋城市人民医院科室对外协作配合考核
- 主动脉内球囊反搏术的应用与护理
- 针刺伤预防与处理-2024中华护理学会团体标准
- 店长周工作总结数据报表模板
- 羽绒原料购销合同
- 2-2新能源汽车充电系统检修
- 敦煌舞智慧树知到期末考试答案章节答案2024年兰州文理学院
- 机械工程学科研究前沿
- 涉外建设项目视频安防监控系统设计规范 DG-TJ08-2054-2013
- 电能质量评估报告
- Neo4j介绍及实现原理
- 印刷厂周报告
评论
0/150
提交评论