计算机数据结构

上传人:ba****u 文档编号:201559935 上传时间:2023-04-20 格式:DOCX 页数:3 大小:12.93KB
收藏 版权申诉 举报 下载
计算机数据结构_第1页
第1页 / 共3页
计算机数据结构_第2页
第2页 / 共3页
计算机数据结构_第3页
第3页 / 共3页
资源描述:

《计算机数据结构》由会员分享,可在线阅读,更多相关《计算机数据结构(3页珍藏版)》请在装配图网上搜索。

1、算法设计题(每题10分,共30分)1. 【严题集4.12】编写一个实现串的置换操作Replace(&S, T, V)的算法。解:int Replace(Stringtype &S,Stringtype T,Stringtype V);/将串 S 中所有子串 T 替换为V,并返回置换次数for(n=0,i=1;inext);printf(c”data)如果当前串长为0,则return(-1)否则开始递归:if串没有到末尾,则P=P-next;再调用invert(s);else printf(p-data);return严题集4.10答案:void String_Reverse(Stringtyp

2、e s,Stringtype &r)/求 s 的逆串 rStrAssign(r,); /初始化r为空串for(i=Strlen(s);i;i-)StrAssign(c,SubString(s,i,1);StrAssign(r,Concat(r,c); /把s的字符从后往前添加到r中/这是递推算法。/String_Reverse3.【严题集5.18】试设计一个算法,将数组An中的元素A0至An-1 循环右移k位,并要求只用一 个元素大小的附加存储,元素移动或交换次数为O(n)解:分析:要把A的元素循环右移k位,则A0移至Ak,Ak移至A2k.直到最终回到A 0,然而这并没有全 部解决问题,因为有

3、可能有的元素在此过程中始终没有被访问过,而是被跳了过去.分析可知,当n和k的最大 公约数为p时,只要分别以A0,A1,.Ap-1为起点执行上述算法,就可以保证每一个元素都被且仅被右移一 次,从而满足题目要求,也就是说,A的所有元素分别处在p个循环链上面,举例如下: n=15,k=6,则 p=3.第一条链:A0-A6,A6-A12,A12-A3,A3-A9,A9-A0. /已“顺便”移动了 A6、A12 第二条链:A1-A7,A7-A13,A13-A4,A4-A10,A10-A1.第三条链:A2-A 8,A8-A14,A14-A5,A5-A11,A11-A2.恰好使所有元素都右移一次.虽然未经数

4、学证明,但作者相信上述规律应该是正确的.程序如下:void RSh(int An,int k)/把数组A的元素循环右移k位,只用一个辅助存储空间for(i=1;i=k;i+)if(n%i=0&k%i=0) p=i;/求 n 和 k 的最大公约数 pfor(i=0;ip;i+)j=i;l=(i+k)%n;temp=Ai;while(l!=i)Aj=temp;temp=Al;Al=Aj;j=l;l=(j+k)%n;/循环右移一步Ai=temp;/for/RSh附加题:利用 C 的库函数 strlen, strcpy (或 strncpy)写一个算法 void StrDelete(char *S,int t,int m),删 除串S中从位置i开始的连续的m个字符。若iNstrlen(S),则没有字符被删除;若i+mNstrlen(S),则将 S中从位置i开始直至末尾的字符均被删去。提示:strlen是求串长(length)函数:int strlen(char s); /求串的长度strcpy 是串复制(copy)函数:char *strcpy(char to,char from); / 该函数将串 from 复制到串 to中,并且返回一个指向串to的开始处的指针。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!