十套数据结构试卷和答案-供复习参考_第1页
十套数据结构试卷和答案-供复习参考_第2页
十套数据结构试卷和答案-供复习参考_第3页
十套数据结构试卷和答案-供复习参考_第4页
十套数据结构试卷和答案-供复习参考_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

对4.对5.对错对4.对5.对错9.错10.错一、选择题1.B2.B3.C4.B5.B6.A7.C8.C9.B10.D二、判断题1.对2.对36.对7.对8三、填空题1.s->left=p,p->right2.n(n-1),n(n-1)/2n/2开放定址法,链地址法5.146.2h-1,2h-1(12,24,35,27,18,26)(12,18,24,27,35,26)5i<j&&r[i].key<x.key,r[i]=x四、算法设计题设计在链式结构上实现简单选择排序算法。voidsimpleselectsorlklist(lklist*&head){lklist*p,*q,*s;intmin,t;if(head==0||head->next==0)return;for(q=head;q!=0;q=q->next){min=q->data;s=q;for(p=q->next;p!=0;p=p->next)if(min>p->data){min=p->data;s=p;}if(s!=q){t=s->data;s->data=q->data;q->data=t;}}}设计在顺序存储结构上实现求子串算法。voidsubstring(chars[],longstart,longcount,chart[]){longi,j,length=strlen(s);if(start<1||start>length)printf("Thecopypositioniswrong");elseif(start+count-1>length)printf("Toocharacterstobecopied");

else{for(i=start-1,j=0;i<start+count-1;i++,j++)t[j]=s[i];t[j]='\0';}}设计求结点在二叉排序树中层次的算法。intlev=0;typedefstructnode{intkey;structnode*lchild,*rchild;}bitree;voidlevel(bitree*bt,intx){elseif(bt!=0)else{lev++;if(bt->key==x)return;elseif(bt->key>x)level(bt->lchild,x);level(bt->rchild,x);}}数据结构试卷(八)参考答案一、选择题1.C6.C2.C7.B3.C8.C4.B9.A5.B10.A二、判断题1.对2.错3.对4.错5.错6.对7.对8.对9.对10.对三、填空题1.(49,13,27,50,76,38,65,97)2.t=(bitree*)malloc(sizeof(bitree)),bstinsert(t->rchild,k)p->next=shead->rlink,p->llinkCABD1,160(13,27,38,50,76,49,65,97)n-150四、算法设计题1.设计一个在链式存储结构上统计二叉树中结点个数的算法。voidcountnode(bitree*bt,int&count){if(bt!=0){count++;countnode(bt->lchild,count);countnode(bt->rchild,count);}}2.设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。typedefstruct{intvertex[m];intedge[m][m];}gadjmatrix;typedefstructnode1{intinfo;intadjvertex;structnode1*nextarc;}glinklistnode;typedefstructnode2{intvertexinfo;glinklistnode*firstarc;}glinkheadnode;voidadjmatrixtoadjlist(gadjmatrixg1[],glinkheadnodeg2[]){inti,j;glinklistnode*p;for(i=0;i<=n-1;i++)g2[i].firstarc=0;for(i=0;i<=n-1;i++)for(j=0;j<=n-1;j++)if(g1.edge[i][j]==1){p=(glinklistnode*)malloc(sizeof(glinklistnode));p->adjvertex=j;p->nextarc=g[i].firstarc;g[i].firstarc=p;p=(glinklistnode*)malloc(sizeof(glinklistnode));p->adjvertex=i;p->nextarc=g[j].firstarc;g[j].firstarc=p;}}数据结构试卷(九)参考答案一、选择题1.A2.A3.A4.C5.D6.D7.C8.B9.C10.A11.C12.C13.D14.A15.A二、填空题1.p->next,s->data2.503.m-16,85.快速,堆19/7CBDA6(24,65,33,80,70,56,48)8三、判断题1.错2.对3.对4.对5.错6.错7.对8.对9.错10.对

四、算法设计题1.设计计算二叉树中所有结点值之和的算法。voidsum(bitree*bt,int&s){if(bt!=0){s=s+bt->data;sum(bt->lchild,s);sum(bt->rchild,s);}}2.设计将所有奇数移到所有偶数之前的算法。voidquickpass(intr[],ints,intt){inti=s,j=t,x=r[s];while(i<j){while(i<j&&r[j]%2==0)j=j-1;if(i<j){r[i]=r[j];i=i+1;}while(i<j&&r[i]%2==1)i=i+1;if(i<j){r[j]=r[i];j=j-1;}}r[i]=x;}3.设计判断单链表中元素是否是递增的算法。intisriselk(lklist*head){if(head==0||head->next==0)return(1);elsefor(q=head,p=head->next;p!=0;q=p,p=p->next)if(q->data>p->data)return(0);return(1);}数据结构试卷(十)参考答案一、选择题1一、选择题1.A2.D3.B7.A8.D9.D4.B5.B6.D10.C11.B12.D二、填空题1.4,102.O(nlog2n),O(n2)3.n4.1,25.n(m-1)+16.q->next7.线性结构,树型结构,图型结构8.O(n2),O(n+e)9.8/310.(38,13,27,10,65,76,97)(10,13,27,76,65,97,38)124653structnode*rchild,bt=0,createbitree(bt->lchild)lklist,q=p三、算法设计题1.设计在链式存储结构上合并排序的算法。voidmergelklist(lklist*ha,lklist*hb,lklist*&hc){lklist*s=hc=0;while(ha!=0&&hb!=0)if(ha->data<hb->data){if(s==0)hc=s=ha;else{s->next=ha;s=ha;};ha=ha->next;}else{if(s==0)hc=s=hb;else{s->next=hb;s=hb;};hb=hb->next;}if(ha==0)s->next=hb;elses->next=ha;}设计在二叉排序树上查找结点X的算法。bitree*bstsearch1(bitree*t,intkey){bitree*p=t;while(p!=0)if(p->key==key)return(p);elseif(p->key>key)p=p->lchild;elsep=p->rchild;return(0);}设关键字序列(

温馨提示

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

评论

0/150

提交评论