数据结构及应用算法教程参考答案.doc_第1页
数据结构及应用算法教程参考答案.doc_第2页
数据结构及应用算法教程参考答案.doc_第3页
数据结构及应用算法教程参考答案.doc_第4页
数据结构及应用算法教程参考答案.doc_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 1.1 1.2 1.3 (D,R)1.4 ADT ComplexD=r,i|r,iR=InitComplex(&C,re,im)CreimDestroyCmoplex(&C)CGet(C,k,&e)eCkPut(&C,k,e)CkeIsAscending(C)C10IsDescending(C)C10Max(C,&e)eCMin(C,&e)eCADT ComplexADT RationalNumberD=s,m|s,mm0R=InitRationalNumber(&R,s,m)RsmDestroyRationalNumber(&R)RGet(R,k,&e)eRkPut(&R,k,e)RkeIsAscending(R)R10IsDescending(R)R10Max(R,&e)eRMin(R,&e)eRADT RationalNumber1.5 (1) product=1; i=1;while(i=n)product *= i;i+;(2) i=0;do i+; while(i!=n) & (ai!=x);(3) switch case xy: z=y-x; break;case x=y: z=abs(x*y); break;default: z=(x-y)/abs(x)*abs(y);1.6 (1) exit(2) (3) (1)exit(2)(3)1.7 (1) scanfprintf(2) (3) (1)scanfprintf(2)(3)1.8 n(1) i=1; k=0;while(i=n-1) k += 10*i;i+;(2) i=1; k=0;do k += 10*i;i+; while(i=n-1);(3) i=1; k=0;while (i=n-1) i+; k += 10*i;(4) k=0;for(i=1; i=n; i+) for(j=i; j=n; j+) k+;(5) for(i=1; i=n; i+) for(j=1; j=i; j+) for(k=1; k=j; k+) x += delta;(6) i=1; j=0;while(i+jj) j+;else i+;(7) x=n; y=0; / n1while(x=(y+1)*(y+1) y+;(8) x=91; y=100;while(y0) if(x100) x -= 10; y-; else x+;(1) n-1(2) n-1(3) n-1(4) n+(n-1)+(n-2)+.+1=(5) 1+(1+2)+(1+2+3)+.+(1+2+3+.+n)=(6) n(7) (8) 11001.9 n2n2countnint Time(int n) count = 0;x=2;while(x4381.14 (1) (2) (3) (4) (1)g(n) (2)g(n) (3)f(n) (4) f(n)1.15 (1)(2)(3)(4)1.16 XYZint max3(int x,int y,int z)if(xy)if(xz) return x;else return z;elseif(yz) return y;else return z;1.17 kkmkmk0nnint Fibonacci(int k,int n)if(k1) exit(OVERFLOW);int *p,x;p=new intk+1;if(!p) exit(OVERFLOW);int i,j;for(i=0;ik+1;i+)if(ik-1) pi=0;else pi=1;for(i=k+1;in+1;i+)x=p0;for(j=0;jk;j+) pj=pj+1;pk=2*pk-1-x;return pk;1.18 ABCDEtypedef enumA,B,C,D,E SchoolName;typedef enumFemale,Male SexType;typedef structchar event3; /SexType sex;SchoolName school;int score; Component;typedef structint MaleSum;/int FemaleSum;/int TotalSum;/ Sum;Sum SumScore(SchoolName sn,Component a,int n)Sum temp;temp.MaleSum=0;temp.FemaleSum=0;temp.TotalSum=0;int i;for(i=0;iarrsize#include#include#define MAXINT 65535#define ArrSize 100int fun(int i);int main()int i,k;int aArrSize;coutk;if(kArrSize-1) exit(0);for(i=0;iMAXINT) exit(0);else ai=2*i*ai-1;for(i=0;iMAXINT) exit(0);else coutai ;return 0;1.20 #include#include#define N 10double polynomail(int a,int i,double x,int n);int main()double x;int n,i;int aN;coutx;coutn;if(nN-1) exit(0);couta0-an:;for(i=0;iai;coutThe polynomail value is polynomail(a,n,x,n)0) return an-i+polynomail(a,i-1,x,n)*x;else return an;o(n)2 2.1 2.2 (1) (2) (3) (4) 2.3 2.4 2.5 L=(LinkList)malloc(sizeof(LNode);P=L;for(i=1;inext=(LinkList)malloc(sizeof(LNode);P=P-next;P-data=i*2-1;P-next=NULL;for(i=4;i=1;i-) Ins_LinkList(L,i+1,i*2);for(i=1;inext=S;(2) P-next=P-next-next;(3) P-next=S-next;(4) S-next=P-next;(5) S-next=L;(6) S-next=NULL;(7) Q=P;(8) while(P-next!=Q) P=P-next;(9) while(P-next!=NULL) P=P-next;(10) P=Q;(11) P=L;(12) L=S;(13) L=P;a. (4) (1)e. (7) (11) (8) (4) (1)f. (5) (12)g. (9) (1) (6)2.7 LPa. P_b. P_c. P_d. _e. _(1) P=P-next;(2) P-next=P;(3) P-next=P-next-next;(4) P=P-next-next;(5) while(P!=NULL) P=P-next;(6) while(Q-next!=NULL) P=Q; Q=Q-next; (7) while(P-next!=Q) P=P-next;(8) while(P-next-next!=Q) P=P-next;(9) while(P-next-next!=NULL) P=P-next;(10) Q=P;(11) Q=P-next;(12) P=L;(13) L=L-next;(14) free(Q);a. (11) (3) (14)f. (10) (12) (8) (3) (14)g. (10) (12) (7) (3) (14)h. (12) (11) (3) (14)i. (9) (11) (3) (14)2.8 Pa. PS_b. PS_c. P_d. P_e. P_(1) P-next=P-next-next;(2) P-priou=P-priou-priou;(3) P-next=S;(4) P-priou=S;(5) S-next=P;(6) S-priou=P;(7) S-next=P-next;(8) S-priou=P-priou;(9) P-priou-next=P-next;(10) P-priou-next=P;(11) P-next-priou=P;(12) P-next-priou=S;(13) P-priou-next=S;(14) P-next-priou=P-priou;(15) Q=P-next;(16) Q=P-priou;(17) free(P);(18) free(Q);a. (7) (3) (6) (12)f. (8) (4) (5) (13)g. (15) (1) (11) (18)h. (16) (2) (10) (18)i. (14) (9) (17)2.9 (1) Status A(LinkedList L) /Lif(L & L-next) Q=L;L=L-next;P=L;while(P-next) P=P-next;P-next=Q;Q-next=NULL;return OK;(2) void BB(LNode *s, LNode *q) p=s;while(p-next!=q) p=p-next;p-next =s;void AA(LNode *pa, LNode *pb) /papbBB(pa,pb);BB(pb,pa);(1) L2L(2) 2.10 Status DeleteK(SqList &a,int i,int k)/aikif(i1|ka.length) return INFEASIBLE;/else for(count=1;count=i+1;j-) a.elemj-i=a.elemj;a. length-;return OK;Status DeleteK(SqList &a,int i,int k)/aik/i0int j;if(ia.length-1|ka.length-i) return INFEASIBLE;for(j=0;j0,xB.length?A.length:B.length;for(i=0;iB.elemi) j=1;if(A.elemik) j=1;if(B.lengthk) j=-1;if(A.length=B.length) j=0;return j;2.13 Locate(L,x);int LocateElem_L(LinkList &L,ElemType x)int i=0;LinkList p=L;while(p&p-data!=x)p=p-next;i+;if(!p) return 0;else return i;2.14 Length(L)/int ListLength_L(LinkList &L)int i=0;LinkList p=L;if(p) p=p-next;while(p)p=p-next;i+;return i;2.15 hahbmnhcvoid MergeList_L(LinkList &ha,LinkList &hb,LinkList &hc)LinkList pa,pb;pa=ha;pb=hb;while(pa-next&pb-next)pa=pa-next;pb=pb-next;if(!pa-next)hc=hb;while(pb-next) pb=pb-next;pb-next=ha-next;elsehc=ha;while(pa-next) pa=pa-next;pa-next=hb-next;2.16 lalblailenlbiStatus DeleteAndInsertSub(LinkedList la,LinkedList lb,int i,int j,int len)if(i0|j0|len0) return INFEASIBLE;p=la;k=1;while(knext;k+;q=p;while(knext;k+;s=lb; k=1;while(knext;k+;s-next=p; q-next=s-next;return OK;Status DeleteAndInsertSub(LinkList &la,LinkList &lb,int i,int j,int len)LinkList p,q,s,prev=NULL;int k=1;if(i0|j0|len0) return INFEASIBLE;/ laip=la;while(p&knext;k+;if(!p)return INFEASIBLE;/ lai+len-1q=p;k=1;while(q&knext;k+;if(!q)return INFEASIBLE;/ i=1if(!prev) la=q-next;else prev-next=q-next;/ lalbif(j=1)q-next=lb;lb=p;elses=lb;k=1;while(s&knext;k+;if(!s)return INFEASIBLE;q-next=s-next;s-next=p; /return OK;2.17 Insert(L,i,b)2.18Delete(L,i)2.19 minkmaxkminkmaxkStatus ListDelete_L(LinkList &L,ElemType mink,ElemType maxk)LinkList p,q,prev=NULL;if(minkmaxk)return ERROR;p=L;prev=p;p=p-next;while(p&p-datadatanext;elseprev-next=p-next;q=p;p=p-next;free(q);return OK;2.20 2.19void ListDelete_LSameNode(LinkList &L)LinkList p,q,prev;p=L;prev=p;p=p-next;while(p)prev=p;p=p-next;if(p&p-data=prev-data)prev-next=p-next;q=p;p=p-next;free(q);2.21 / Status ListOppose_Sq(SqList &L)int i;ElemType x;for(i=0;inext;L-next=NULL;while(p)q=p;p=p-next;q-next=L-next;L-next=q;return OK;2.23 ABCABCCABmn/ CBStatus ListMerge_L(LinkList &A,LinkList &B,LinkList &C)LinkList pa,pb,qa,qb;pa=A-next;pb=B-next;C=A;while(pa&pb)qa=pa;qb=pb;pa=pa-next;pb=pb-next;qb-next=qa-next;qa-next=qb;if(!pa)qb-next=pb;pb=B;free(pb);return OK;2.24 ABABCABC/ CBStatus ListMergeOppose_L(LinkList &A,LinkList &B,LinkLi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论