数据结构习题(,2,3章)答案.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文档。上传文档
查看更多
数据结构习题(,2,3章)答案

第一章 绪论 一.选择题 1.B D 2.C A 3.C 4.D 5.A 6.A 7.D 8.D 二.填空题 1.数据的逻辑结构、数据的存储结构、基本操作 2.集合、线性结构、树结构、图结构 3.n、、○(n2) 三.算法分析题 1.功能:求n! 时间复杂度:○(n) 2.功能:求n! 时间复杂度:○(n2) 四.解答 略 第二章 线性表 一.选择题 1.A 2.B 3.A 4.D 5.A 6.C 7.A 8.B 9.A 二、填空 1.物理位置相邻 指针 2.直接前驱 直接后继 3.顺序 链式 三、算法设计 1.①   int count(Linklist h,int x) { int num=0; Linknode *p; p=h-next; while(pp-data=x) p=p-next; while(p) if(p-nextp-data==p-next-data) p=p-next; else { num++; p=p-next; } return num; } ② void delevenl(Linklist h,int x) { Linknode *p,*r; p=h-next;r=h; while(pp-datax) { if(p-data%2==0) { r-next=p-next; free(p); p=r-next; } else { r=p; p=p-next; } } } 2. void Inverse(Linklist h)Linklist p,q; p=h; h=null; while(p) { q=p; p=p-next; q-next=h; h=q; } } 3. void merge(Linklist La,Linklist Lb,Linklist Lc) { Linknode *p; Lc=new Lnode; Lc-next=NULL; p=La-next; Lb=La; Lb-next=NULL; while(p) { La=p-next; if(p-data0) { p-next=Lc-next; Lc-next=p; } else { p-next=Lb-next; Lb-next=p; } p=La; } } 4. int insect(Linklist La,Linklist Lb) { Linknode *p,*q; p=La-next; while(p) { q=Lb-next; while(q) { if(p-data==q-data) break; else q=q-next; } if (!q) return 0; p=p-next; } return 1; } 5. void change(Dublist h) { DubLnode *p; p=h; while(p-next!=h) { p-next-prior=p; p=p-next; } h-prior=p; } 第三章 栈和队列 一、选择题 1.C 2.C 3.D 4.C 5.A 6.C 7.D 二.填空题 1.线性 任意位置 栈顶 队尾 对头 2.bceda 3.3 三.解答题 1. #define M 20 struct DStack{ Selemtype data[M]; int top1,top2; }; void InitStack(DStack s) { s.top1=0; s.top2=M-1; } int IsEmpty(DStack s,int i) { switch(i) { case 0:return s.top1==0; case 1:return s.top2==M-1; } } int IsFull(DStack s) { return s.top1s.top2; } void Push(DStack s ,int i,Selemtype x) { if (IsFull(s)) { coutfullendl; return; } switch(i) { case 0: s.data[s.top1]=x; s.top1++; break; case 1: s.data[s.to

文档评论(0)

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

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

1亿VIP精品文档

相关文档