必威体育精装版数据结构习题(有答案).docxVIP

必威体育精装版数据结构习题(有答案).docx

  1. 1、本文档共21页,可阅读全部内容。
  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文档。上传文档
查看更多
第1章绪 1.1有下列几种二兀组表示的数据结构,试画出它们分别对应的图形表示, 并指出它们分别属于何种结构。 ⑴ A= ( D ,R ),其中,D = { a i,a2,a 3,a4 }, R={ } ⑵ B= ( D,R ),其中,D = { a,b,c, d,e}, R={ (a,b),(b,c), (c, d),(d,e)} ⑶ C= ( D,R ),其中,D = { a,b,c,d,e,f,g}, R={ (d,b),(d, g),(b,a),(b,c),(g,e),(e,f)} ⑷ K= ( D,R ),其中,D = { 1,2,3,4,5,6}, R={ <1,2>,<2, 3>,<2,4>,<3,4>,<3,5>,<3,6>,<4,5>,<4,6>} (1) 集合 (2) 线性表 (3) 树 (4)图 1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。 (1) i=1; k=0 while(i=n-1) { k+=10*i ; i++; } (2) for (in t i=1; i=n; i++) for (int j=1; j=n; j++) { c[i][j]=0; for (i nt k=1; k=n; k++) c[i][j]=c[i][j]+a[i][k]*b[k][j] } 解: n-1 n n n 3 1 n i 1 j 1 k 1 (3) x=0; y=0; for (int i=1; i=n; i++) for (int j=1; j=i; j++) for (int k=1; k=j; k++) x=x+y; n i j 1 n i j n i(i 1) 1 n i2 1 n i 1 ?n(n 1)(2n 1) 1 ?n(n 1) 1 j / — i i ? ? (3) i 1 j 1 k 1 i 1 j 1 i 1 2 2 i 1 2 i 1 2 6 2 2 n(n 1)(n 2) 6 1.3指出下列个算法的功能,并求其时间复杂度。(1) int sum1(i nt n){ 1.3指出下列个算法的功能,并求其时间复杂度。 (1) int sum1(i nt n) { int p=1,s=0; for (int i=1;i=n; i++) { p*= i; s+=p;} return s; } ⑵ int sum2 (int n) { int s=0; for ( int i=1; i=n; i++) { int p=1; for (int j=1; j=i; j++) p*=j; s+=p; } 解: n ⑴ i! , T(n)=O(n) i 1 n ⑵ i! , T(n)=O(n 2) i 1 } 1.4算法设计 1枚是假的,伪币与真币重量略有不同。如何借用一架有3 1枚是假的,伪币与真币重量略有不同。如何借用一架 上机练习题 要求:给出问题分析、算法描述、源程序及运行截图,在线提交。 1.设a, b, c为3个整数,求其中位于中间值的整数。 第2章线性表 1.设计算法:在顺序表中删除值为 e的兀素,删除成功,返回1 ; int SqlistT::DeleteElem( T e ) 否则,返回0。 { for (i=1; i=le ngth; i++) // 按值顺序查找 * i 可从0开始 if (elem[i-1]= =e) // 找到,进行删除操作 { for ( j=i; jlength; j++) // ai 至 an 依次前移 Elem[j-1] = elem[j]; len gth - - ; // 表长减一 return 1 ; //删除成功,返回 } return 0 ; //未找到,删除不成功,返回 } 1 0 int SqListT::Locate ( T 解:设表长为n,等概率下,每个兀素被定位的概率为: p=1/n 2.分析顺序表中兀素疋位算法 e )的时间复杂度。 疋位成功第i个兀素,需比较i次 一、n 1 C. 1 V 1 °n(n 1) n 1 f(n) ?i i ? i 1 n n i 1 n 2 2 3.对于有头结点的单链表,分别写出定位成功时, 实现下列定位 语句序列。 (1)定位到第i个结点ai; p=head; j=0; while ( p ji ) { p=p-n ext; j++;} (2)定位到第i个结点的前驱ai-i ; p=head; j=0; while ( p ji-1 ) { p=p- next; j++;} (3)定位到尾结点; p=head; while ( p -next ) p=p-n ext; (4)定位到尾结点的前驱。 p=head; 4. 4.描述一下三个概念的区别:头指针,头结点,首元

文档评论(0)

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

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

1亿VIP精品文档

相关文档