2019年湖北武汉科技大学数据结构(C语言)考研真题及答案.doc

上传人:wo****o 文档编号:86205642 上传时间:2023-04-14 格式:DOC 页数:8 大小:132KB
返回 下载 相关 举报
2019年湖北武汉科技大学数据结构(C语言)考研真题及答案.doc_第1页
第1页 / 共8页
2019年湖北武汉科技大学数据结构(C语言)考研真题及答案.doc_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2019年湖北武汉科技大学数据结构(C语言)考研真题及答案.doc》由会员分享,可在线阅读,更多相关《2019年湖北武汉科技大学数据结构(C语言)考研真题及答案.doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2019年湖北武汉科技大学数据结构(C语言)考研真题及答案一、选择题(共15小题,每小题2分,共30分)1. 计算算法的时间复杂度是属于一种( )的方法。A)事前统计 B)事前分析估算 C)事后统计 D)事后分析估算2. 数据的逻辑结构可以分为( )。A)静态结构和动态结构 B)物理结构和存储结构C)线性结构和非线性结构 D)虚拟结构和抽象结构3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址( )。A)必须是连续的 B)部分地址必须是连续的C)一定是不连续的 D)连续不连续都可以4. 线性表既可以用带头结点的链表表示,也可以用不带头结点的链表表示,前者最主要好处是( )。A)使空

2、表和非空表的处理统一 B)可以加快对表的遍历C)节省存储空间 D)可以提高存取表元素的速度5. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3。当从队列中删除一个元素,再加入两个元素后, rear 和front的值分别为( )。A)1和5 B)2和4 C)4和2 D)5和16. 对二叉树T中的某个结点x,它在先根序列、中根序列、后根序列中的序号分别为pre(x),in(x)、post(x),a和b是T中的任意两个结点,下列选项一定错误的是( )。A)a是b的后代且pre(a)post(b)C)a是b的后代且in(a)in(b) D)a在b的左边且in(a)ne

3、xt=L; L=s;3. rear=(rear+1)%(m+1)4. 95. 1116. n2+n37. O(eloge)8. 深度优先9. 54/1610. 79,56,38三、判断题(对的答错的答,共10小题,每小题2分,共20分) 四、综合应用题(共5小题,每小题各8分,共40分)1.(1) (4分) k=2(i-1)+(j+1)%2(2) (2分) i=k/2+1(2分) j=k/2+k%2+1-k/2/22.(1)(2分)AOV网(2)(2分)DFS序列:V1,V2,V6,V5,V4,V3(3)(2分)BFS序列:V1,V2,V4,V3,V6,V5(4)(2分)拓扑序列:V1,V2,

4、V4,V3,V5,V63.(1) (1分)先序:ABDGCEHFI(1分)中序:GDBAEHCFI(1分)后序:GDBHEIFCA(2) (5分)顺序存储示意图123456789101112131415ABCDEFGHI4.(1)(4分)m(k-1)+1因为T中只存在度为0和k的结点。N=n0+nk=B+1=k*nk+1- n0=(k-1)nk+1 (nk就是m)(2)(2分)最多:(kh-1)/(k-1)除第h层外,第1到h-1层的每个结点的度都是k,即满k叉树。N=k0+k1+k2+kh-1=(kh-1)/(k-1)(2分)最少:k(h-1)+1除第1层外,每层都有k个结点,其中1个分支节

5、点和k-1个叶子即:N=(h-1)k+15.(1)(4分)画出哈希表012345678910111214168275519208479231110121431139113(2)(2分)成功时的平均查找长度:(1+2+1+4+3+1+1+3+9+1+1+3)/8=30/12=5/2(3)(2分)失败时的平均查找长度(1+2+3+4+5+6+7+8+9+10+11+12+13)/13=91/13=7五、算法设计题(共4小题,每小题10分,共40分)1.void Fun(DbLinkList &L) Tail=L-Left; p=L-Right; i=1; while(p&p!=Tail) if(i

6、%2=0) q=p; /删除结点p p=p-next; p-Left=q-Left; q-Left-Right=p; q-Right=Tail-Right; /插入到Tail之后 q-Left=Tail; Tail-Right-Left=q; T-Right=q; else p=p-Right; i+; 2.int Match(char *s) char smaxsize; int top=0,i=0; while(si!=#) switch(si) case (: case : case : stop+=si; i+; break; /入栈 case ): if(stop-1=() top-

7、; i+; break; else printf(“不匹配”); return 0; case : if(stop-1=) top-; i+; break; else printf(“不匹配”); return 0; case : if(stop-1=) top-; i+; break; else printf(“不匹配”); return 0; case #: if(top=0) printf(“匹配成功”); return 1; else printf(“不匹配”); return 0; default: i+; /读入其它字符,不作处理 3.int Leaf(CSTree *T) if(

8、T=NULL) return 0;int front=1,rear=1;/front,rear是队头队尾元素的指针int last=1; /last指向树中同层结点中最后一个结点int temp=0; /叶子结点数Qrear=T; /Q是以树中结点为元素的队列while(frontfirstchild=NULL) temp+; while(p!=NULL) /层次遍历if(p-firstchild) Q+rear=p-firstchild; /第一子女入队p=p-nextsibling; /同层兄弟指针后移if(frontlast) last=rear; /本层结束,last移到指向下层最右结

9、点处return temp;4.void DeletEdge(AdjList g,int i,int j) p=gi.firstarc;pre=NULL; /删顶点i 的边结点(i,j),pre是前驱指针while (p)if(p-adjvex=j) if(pre=NULL) gi.firstarc=p-next;else pre-next=p-next; free(p);break; /释放结点空间,退出循环 else pre=p; p=p-next; /沿链表继续查找p=gj.firstarc;pre=NULL; /删顶点j 的边结点(j,i)while (p)if (p-adjvex=i) if(pre=NULL) gj.firstarc=p-next;else pre-next=p-next;free(p);break; /释放结点空间,退出循环 else pre=p; p=p-next; /沿链表继续查找

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 考试试题 > 升学试题

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁