网站大量收购独家精品文档,联系QQ:2885784924

《数据结构》(C语言版)习题答案.docVIP

  1. 1、本文档共14页,可阅读全部内容。
  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. B 2. D 3. D 4. A 5. C 6. A 7. B 8. D 9. C 10. A 二、简答题 1. 答:数据的逻辑结构通常有四种,即集合、线性结构、树形结构和图状结构。存储结构主要有顺序存储结构和链式存储结构。 2. 答:比如一分通讯录,记录了相关人员的电话号码,将其按姓名一人占一行构成表,这个表就是一个数据结构。每一行是一个记录,对于整个表来说,只有一个开始结点和一个终端结点,其它结点也只有一个前驱和一个后继。这几个关系就确定了表的逻辑结构。 3. 答:算法是对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。算法具有有穷性、确定性、可行性、输入和输出5个特性。 4. 答:它是一种树型结构,可以用二元组描述为: A={K, R} K={a, b, c, d, e, f, g, h, i} R={(a,b),(a,c),(c,d),(c,e),(d,f),(d,g),(e,h),(f,i)} 5.答: (1) A对应的逻辑图形如下图左,它是一种线性结构。 (2) B对应的逻辑图形如上图右所示,它是一种树型结构。 (3) C对应的逻辑图形如下图所示,它是一种图型结构。 三、计算题 解: (1) O(n) ; (2) O(n) ; (3) O(n1/2) ;(4)略。 习题2 一、选择题 1. A 2. B 3. B 4. D 5. A 6. C 7. B 8. A 9. C 10. C 二、简答题 1. 答:线性表是具有n个数据元素的一个有限序列。线性表的特点是:数据元素之间是一对一的关系。除第一个元素外,每个元素有且只有一个直接前驱;除最后一个元素外,每个元素有且只有一个直接后继。 2. 答:头指针是链表的一个标识,它用来指向带头结点的链表中的头结点。头结点是在链表的第一个数据元素之前附加的一个结点,它的作用是使对第一个结点的操作和其它结点一致,表空与非空时处理一致,不需要特殊处理,简化了操作。 3. 答:顺序表的特点是逻辑位置相邻的数据元素其物理位置也相邻,因此可以进行随机存储, 是一种随机存储结构。其插入和删除操作的时间复杂度均为O(n)。链表中的数据元素使用一组任意的存储单元存储,不要求逻辑位置相邻的数据元素物理位置也相邻,而是采用附加的指针表示元素之间的逻辑关系。链表的插入和删除结点均不需要移动其他结点,但是,其查找运算必须从头指针开始顺序查找,其时间复杂度为O(n)。 答:算法如下 void Convert(SqList L){ int i,j,temp; j=L.length-1; i=0; while(ij){ temp=L.elem[i]; L.elem[i]=L.elem[j]; L.elem[j]=temp; i++; j--; } } 答:算法如下 void Delete(SqList La,SqList Lb){ int i,j,k; i=0;j=0; while(iLa.lengthjLb.length){ if(La.elem[i]Lb.elem[j]) i++; else if(La.elem[i]Lb.elem[j]) j++; else ListDelete_Sq(La, i+1, k); } } 答:算法如下 void InvertList(LinkList L){ LinkList p,q,r; p = L-next; q = p-next; p-next=NULL; while(q!=NULL){ r=q-next; q-next=p; p=q; q=r; } L-next=p; } 7. 答:算法如下 void MergeOrder(LinkList La,LinkList Lb){ LinkList pa,pb,Lc,pc; pa=La-next; pb=Lb-next; Lc=pc=La; while (papb){ if(pa-data =pb-data ){ pc-next=pa; pc=pa; pa=pa-next; }else{ pc-next=pb; pc=pb; pb=pb-next; } } if (!pa) pc-next=pb; else pc-next=pa; } 8.答略。 9. 答:算法如下 int Length(LinkList L){ int i=0; LinkList p; p=L-next; while(p){ p=p-next; i++; } return

文档评论(0)

你好世界 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档