电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

《数据结构(C语言描述)》马秋菊源代码和习题参考答案VIP免费

《数据结构(C语言描述)》马秋菊源代码和习题参考答案_第1页
1/27
《数据结构(C语言描述)》马秋菊源代码和习题参考答案_第2页
2/27
《数据结构(C语言描述)》马秋菊源代码和习题参考答案_第3页
3/27
习题配套 第一章 2.C、A、B、B、A、A、D 3. D={A,B,C,E,F,G,H,I,J}; R={,,,,,,,,,} 4.顺序、链式、索引、哈希。 *5.解:100n2>2nn至少要多大 6.O(n)、O(n)、O(n)、O( n )、 (5)当n>m,O(n),当m>n,O(m) 7.n! 2100>lgn>n1/2>n3/2>(3/2)n>2n>nlgn>nn 第二章 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) A B C E F G H I 题1-3 图 J 链表 void del_link(LinkList H,int x)/*删除数据域为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(i<1||k<0||i+k-1>L->length) /*检查空表及删除位置的合法性*/ {printf("不存在第i个元素"); return ERROR;} for(j=i;j<=L->length-k;j++) L->elem[j]=L->elem[j+k]; /*向上移动*/ L->length-=k; Return OK;/*删除成功*/ } 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(LinkList H) { 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!=...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

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

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部