《数据结构(C语言描述)》马秋菊源代码和习题参考附标准答案.docVIP

《数据结构(C语言描述)》马秋菊源代码和习题参考附标准答案.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  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.C、A、B、B、A、A、D 3. D={A,B,C,E,F,G,H,I,J}; R={A,B,A,C,A,E,B,F,B,G,E,H,E,I,E,J,H,I,I,J} A A B C E F G H I 题1-3图 J 4.顺序、链式、索引、哈希. *5.解:100n22nn至少要多大 6.O(n)、O(n)、O(n)、O()、 (5)当nm,O(n),当mn,O(m) 7.n! 2100lgnn1/2n3/2(3/2)n2nnlgnnn 第二章 1.×、√、×、√、√ 2.AAD 4.顺序表 void Delete_SeqListx(SeqList*L,ElemType x) /*删除表中值为x元素*/ {inti,j; for(i=1;i=L-length;i++){ if(L-elem[i]==x){ for(j=i;j=L-length-1;j++) L-elem[j]=L-elem[j+1]; L-length--; }/*向上移动*/ } O(n2) 链表 voiddel_link(LinkListH,intx)/*删除数据域为x的结点*/ { LNode*p,*q; p=H;q=H-next; while(q!=NULL) { if(q-data==x){ p-next=q-next;free(q);q=p-next; } else{p=q;q=q-next;} } } O(n) 5. int Delete_SeqListx(SeqList*L,int i,int k) /*删除表中删除自第i个结点开始的k个结点*/ {intj; if(i1||k0||i+k-1L-length) /*检查空表及删除位置的合法性*/ {printf("不存在第i个元素"); returnERROR;} for(j=i;j=L-length-k;j++) L-elem[j]=L-elem[j+k];/*向上移动*/ L-length-=k; ReturnOK;/*删除成功*/ } O(n) 6. void Delete_SeqListx(SeqList*L,ElemType x) /*将表中值为x元素换成y*/ {inti,j; for(i=1;i=L-length;i++){ if(L-elem[]==x){ L-elem[i]=y; }/**/ } O(n) 7.写一算法在循环单链表上实现线性表的CList_length(L)运算. int link_length(LinkListH) { LNode*p;int i=0; p=H; while(p-next!=H) {i++; p=p-next; } return i; } O(n) 8. 在用头指针表示的单循环链表中,查找开始结点a1的时间是O(1),然而要查找终端结点则需从头指针开始遍历整个链表,其时间是O(n).但在很多实际问题中,表的操作常常是在表的首、尾位置上进行,如果改用尾指针rear来表示单循环链表,则查找开始结点a1和终端结点an都很方便,它们的存储位置分别是rear-next-next和rear,显然,查找时间都是O(1). 9. int Insert_LinkListab(LinkList H, ElemType a,ElemType b) /*在单链表中值为a的结点前插入一个值为b的结点*/ {LNode*q=H,*s;*p=H-next; while(p!=NULLp-data!=a)/*q-nextq-next-data!=a*/ {q=p;p=p-next; }/*查找a结点*/ s=(LinkList)malloc(sizeof(LNode));/*申请、填装结点*/ s-data=b; s-next=q-next;/*新结点插入在第i-1个结点的后面*/ q-next=s; return OK; }/*Insert_LinkListab*/ 10.顺序表 void Reverse_Sq(SqList *L)/*顺序表的就地逆置*/ { for(i=1,j=L.len;ij;i++) {t=L.elem[i];L.elem[i]=L.elem[L.len-i+1];L.elem[L.len-i+1]=t;} }/*Reverse_Sq*/ 单链表 void Reverse_L(LinkList*H)/*为简化算法,假设表长大于2*/ { p=H-next;q=p-next;s=q-next;p-next=NULL; while(s-next) { q-next=p;p=q; q=s;s=s-next;/*把H的元素逐个插入新表表头*/ } q-next=p;s-next=q;H-next=s; }/*Reverse_

文档评论(0)

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

建筑从业资格证持证人

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

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档