数据结构第二章课后答案解析.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
专业资料整理分享 完美WORD格式编辑 2.4已知顺序表L递增有序,试写一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。 解: int InsList(SeqList *L,int X) { int i=0,k; if(L-last=MAXSIZE-1) { printf(表已满无法插入!); return(ERROR); } while(i=L-lastL-elem[i]X) i++; for(k=L-last;k=I;k--) L-elem[k+1]=L-elem[k]; L-elem[i]=X; L-last++; return(OK); } 2.5写一算法,从顺序表中删除自第i个元素开始的k个元素。 解: int LDel(Seqlist *L,int i,int k) { if(i=1||(i+kL-last+1)) { printf(输入的i,k值不合法); return(ERROR); } else if(i+k==L-last+2) { L-last=i-2; return OK; } else { j=i+k-1; while(j=L-last) { elem[j-k]=elem[j]; j++; } L-last=L-last-k+1; return OK; } } 2.6已知线性表中的元素(整数)以递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个变量,他们的值为任意的整数)。 解: int Delete(Linklist,int mink,int maxk) { Node *p,*q; p=L; while(p-next!=NULL) p=p-next; if(mink=maxk||L-next-data=maxk||mink+1=maxk) { printf(参数不合法!); return ERROR; } else { while(p-next-data=mink) p=p-next; q=p-next; while(q-datamaxk q!=NULL) { p-next=q-next; free(q); q=p-next; } return OK; } } 2.7试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的储存空间将线性表(a1,a1,…,an)逆置为(an,an-1,…,a1)。 (1)以顺序表作存储结构。 解: int ReversePosition(SpList L) { int k,temp,len; int j=0; k=L-last; len=L-last+1; for(j;jlen/2;j++) { temp=L-elem[k-j]; elem[k-j]=elem[j]; elem[j]=temp; } return OK; } (2)以单链表作存储结构。 解: int ReversePosition(Linklist L) { Node *NL,q,r; q=L; r=L; NL=L-next; if(NL==NULL) return ERROR; while(q-next!=NULL) { q=q-next; r-next=q; r=q; } while(NL-next!=rNL-next!=NULL) { q=NL; while(q-next!=r) q=q-next; r-next=q; r=q; } r-next=NL; NL-next=NULL: return OK; } 2.8假设两个按元素值递增有序排列的线性表A和B,均以单链表作为存储结构,请编写算法,将A表和B表归并成一个按元素值递减的有序排列的线性表C,并要求利用原表(即A表和B表的)结点空间存放表C 解: void merge(SepList *LA,SepList *LB,SepList *LC) { Node *p1,*p2,*q1,*q2; LA-next=p1;

文档评论(0)

xfnzn + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档