第九章排序答案.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章排序答案

实习题 1.??? S和T,试以以下两种方式编写算法,求得所有包含在S中而不包含在T中的字符构成的新串R,以及新串R中每个字符在串S中第一次出现的位置。 (1) CONCAT、LEN、SUB和EQUAL四种基本运算来实现。 (2) 2.??? EDLINE,完成以下功能: (1) list [[n1]-[n2]]:显示第n1行到第n2行,n1缺省时,从第一行开始,n2缺省时,到最后一行, (2) del [[n1]-[n2]]: n1、n2说明同(1)。 (3) n行。edit n:显示第n行的内容,另输入一行替换该行。 (4) ins n:在第n行之前插入一行。 (5) replace str1,str2, [[n1]-[n2]]:在n1到n2行之间用str2替换str1。 3.设计一个文学研究辅助程序,统计小说中特定单词出现的频率和位置。 第四章答案 4.1 设s ’I AM A STUDENT’,t ’GOOD’, q ’WORKER’。给出下列操作的结果: 【解答】StrLength s 14; SubString sub1,s,1,7 sub1 ’I AM A ’; SubString sub2,s,7,1 sub2 ’ ’; StrIndex s,4,’A’ 6; StrReplace s,’STUDENT’,q ; s ’I AM A WORKER’; StrCat StrCat sub1,t ,StrCat sub2,q sub1 ’I AM A GOOD WORKER’。 4.2编写算法,实现串的基本操作StrReplace S,T,V 。 【解答】算法如下: int strReplace SString S,SString T, SString V /*用串V替换S中的所有子串T */ int pos,i; pos strIndex S,1,T ; /*求S中子串T第一次出现的位置*/ if pos 0 return 0 ; while pos! 0 /*用串V替换S中的所有子串T */ switch T.len-V.len case 0: /*串T的长度等于串V的长度*/ for i 0;i V.len;i++ /*用V替换T*/ S- ch[pos+i] V.ch[i]; case 0: /*串T的长度大于串V的长度*/ for i pos+t.ien;i S- len;i-- /*将S中子串T后的所有字符 S- ch[i-t.len+v.len] S- ch[i]; 前移T.len-V.len个位置*/ for i 0;i V.len;i++ /*用V替换T*/ S- ch[pos+i] V.ch[i]; S- len S- len-T.len+V.len; case 0: /*串T的长度小于串V的长度*/ if S- len-T.len+V.len MAXLEN /*插入后串长小于MAXLEN*/ /*将S中子串T后的所有字符后移V.len-T.len个位置*/ for i S- len-T.len+V.len;i pos+T.len;i-- S- ch[i] S- ch[i-T.len+V.len]; for i 0;i V.len;i++ /*用V替换T*/ S- ch[pos+i] V.ch[i]; S- len S- len-T.len+V.len; else /*替换后串长 MAXLEN,但串V可以全部替换*/ if pos+V.len MAXLEN for i MAXLEN-1;i pos+T.len; i-- S- ch[i] s- ch[i-T.len+V.len] for i 0;i V.len;i++ /*用V替换T*/ S- ch[pos+i] V.ch[i]; S- len MAXLEN; else /*串V的部分字符要舍弃*/ for i 0;i MAXLEN-pos;i++ S- ch[i+pos] V.ch[i]; S- len MAXLEN; /*switch */ pos StrIndex S,pos+V.len,T ; /*求S中下一个子串T的位置*/ /*while */ return 1 ; /*StrReplace */ 附加题:用链式结构实现定位函数。 【解答】 typedef struct Node char data; struct Node *next; Node,*Lstring; int strIndex Lstring S, int pos, Lstring T /*从串S的pos序号起,串T第一次出现的位置 */ Node *p, *q, *Ppos;

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档