![《数据结构》3套模拟试题综合测试题带答案4_第1页](http://file4.renrendoc.com/view7/M00/07/06/wKhkGWbrch-ARlxZAAHZPY6vxD8876.jpg)
![《数据结构》3套模拟试题综合测试题带答案4_第2页](http://file4.renrendoc.com/view7/M00/07/06/wKhkGWbrch-ARlxZAAHZPY6vxD88762.jpg)
![《数据结构》3套模拟试题综合测试题带答案4_第3页](http://file4.renrendoc.com/view7/M00/07/06/wKhkGWbrch-ARlxZAAHZPY6vxD88763.jpg)
![《数据结构》3套模拟试题综合测试题带答案4_第4页](http://file4.renrendoc.com/view7/M00/07/06/wKhkGWbrch-ARlxZAAHZPY6vxD88764.jpg)
![《数据结构》3套模拟试题综合测试题带答案4_第5页](http://file4.renrendoc.com/view7/M00/07/06/wKhkGWbrch-ARlxZAAHZPY6vxD88765.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE1《数据结构》模拟试题10一、单项选择题(每题3分,共30分)1.设某无向图有n个顶点,则该无向图的邻接表中有()个表头结点。 (A)2n (B)n (C)n/2 (D)n(n-1)2.设无向图G中有n个顶点,则该无向图的最小生成树上有()条边。 (A)n (B)n-1 (C)2n (D)2n-13.设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字45为基准而得到的一趟快速排序结果是()。 (A)40,42,60,55,80,85 (B)42,45,55,60,85,80 (C)42,40,55,60,80,85 (D)42,40,60,85,55,804.()二叉排序树可以得到一个从小到大的有序序列。 (A)先序遍历 (B)中序遍历 (C)后序遍历 (D)层次遍历5.设按照从上到下、从左到右的顺序从1开始对完全二叉树进行顺序编号,则编号为i结点的左孩子结点的编号为()。 (A)2i+1 (B)2i (C)i/2 (D)2i-16.程序段s=i=0;do{i=i+1;s=s+i;}while(i<=n);的时间复杂度为()。 (A)O(n) (B)O(nlog2n) (C)O(n2) (D)O(n3/2)7.设带有头结点的单向循环链表的头指针变量为head,则其判空条件是()。 (A)head==0 (B)head->next==0 (C)head->next==head (D)head!=08.设某棵二叉树的高度为10,则该二叉树上叶子结点最多有()。 (A)20 (B)256 (C)512 (D)10249.设一组初始记录关键字序列为(13,18,24,35,47,50,62,83,90,115,134),则利用二分法查找关键字90需要比较的关键字个数为()。 (A)1 (B)2 (C)3 (D)410.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。 (A)top=top+1; (B)top=top-1; (C)top->next=top; (D)top=top->next;二、填空题(每题2分,共20分)设指针变量p指向双向链表中的结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为_________=p;s->right=p->right;__________=s;p->right->left=s;(设结点中的两个指针域分别为left和right)。设完全有向图中有n个顶点,则该完全有向图中共有________条有向条;设完全无向图中有n个顶点,则该完全无向图中共有________条无向边。设关键字序列为(Kl,K2,…,Kn),则用筛选法建初始堆必须从第______个元素开始进行筛选。解决散列表冲突的两种方法是________________和__________________。设一棵三叉树中有50个度数为0的结点,21个度数为2的结点,则该二叉树中度数为3的结点数有______个。高度为h的完全二叉树中最少有________个结点,最多有________个结点。设有一组初始关键字序列为(24,35,12,27,18,26),则第3趟直接插入排序结束后的结果的是__________________________________。设有一组初始关键字序列为(24,35,12,27,18,26),则第3趟简单选择排序结束后的结果的是__________________________________。设一棵二叉树的前序序列为ABC,则有______________种不同的二叉树可以得到这种序列。下面程序段的功能是实现一趟快速排序,请在下划线处填上正确的语句。structrecord{intkey;datatypeothers;};voidquickpass(structrecordr[],ints,intt,int&i){intj=t;structrecordx=r[s];i=s;while(i<j){while(i<j&&r[j].key>x.key)j=j-1;if(i<j){r[i]=r[j];i=i+1;}while(____________________)i=i+1;if(i<j){r[j]=r[i];j=j-1;}}_________________;}三、判断题(每题2分,共20分)1.不论是入队列操作还是入栈操作,在顺序存储结构上都需要考虑“溢出”情况。()2.当向二叉排序树中插入一个结点,则该结点一定成为叶子结点。()3.设某堆中有n个结点,则在该堆中插入一个新结点的时间复杂度为O(log2n)。()4.完全二叉树中的叶子结点只可能在最后两层中出现。()5.哈夫曼树中没有度数为1的结点。()6.对连通图进行深度优先遍历可以访问到该图中的所有顶点。()7.先序遍历一棵二叉排序树得到的结点序列不一定是有序的序列。()8.由树转化成二叉树,该二叉树的右子树不一定为空。()9.线性表中的所有元素都有一个前驱元素和后继元素。()10.带权无向图的最小生成树是唯一的。()四、算法设计题(每题10分,共30分)设计在链式结构上实现简单选择排序算法。设计在顺序存储结构上实现求子串算法。设计求结点在二叉排序树中层次的算法。PAGEPAGE1《数据结构》模拟试题10参考答案一、单项选择题(每题3分,共30分)1.B 2.B 3.C 4.B 5.B6.A 7.C 8.C 9.B 10.D二、填空题(每小题2分,共20分)s->left=p,p->rightn(n-1),n(n-1)/2n/2开放定址法,链地址法142h-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三、判断题(每题2分,共20分)1.对 2.对 3.对 4.对 5.对6.对 7.对 8.错 9.错 10.错四、算法设计题(每题10分,共30分)设计在链式结构上实现简单选择排序算法。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){if(bt!=0){lev++;if(bt->key==x)return;elseif(bt->key>x)level(bt->lchild,x);elselevel(bt->rchild,x);}}《数据结构》模拟试题11一、单项选择题(每题3分,共30分)字符串的长度是指()。 (A)串中不同字符的个数 (B)串中不同字母的个数 (C)串中所含字符的个数 (D)串中不同数字的个数建立一个长度为n的有序单链表的时间复杂度为() (A)O(n) (B)O(1) (C)O(n2) (D)O(log2n)两个字符串相等的充要条件是()。 (A)两个字符串的长度相等 (B)两个字符串中对应位置上的字符相等 (C)同时具备(A)和(B)两个条件 (D)以上答案都不对设某散列表的长度为100,散列函数H(k)=k%P,则P通常情况下最好选择()。 (A)99 (B)97 (C)91 (D)93在二叉排序树中插入一个关键字值的平均时间复杂度为()。 (A)O(n) (B)O(1og2n) (C)O(nlog2n) (D)O(n2)设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为()。 (A)A[1],A[2],A[3],A[4] (B)A[1],A[14],A[7],A[4] (C)A[7],A[3],A[5],A[4] (D)A[7],A[5],A[3],A[4]设一棵完全二叉树中有65个结点,则该完全二叉树的深度为()。 (A)8 (B)7 (C)6 (D)5设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉链权中有()个度数为0的结点。 (A)5 (B)6 (C)7 (D)8设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发进行深度优先遍历可以得到的一种顶点序列为()。 (A)aedfcb (B)acfebd (C)aebcfd (D)aedfbc队列是一种()的线性表。 (A)先进先出 (B)先进后出 (C)只能插入 (D)只能删除二、填空题(每题2分,共20分)设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为_____________________________。下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上正确的内容。typedefstructnode{intdata;structnode*lchild;structnode*rchild;}bitree;voidbstinsert(bitree*&t,intk){if(t==0){____________________________;t->data=k;t->lchild=t->rchild=0;}elseif(t->data>k)bstinsert(t->lchild,k);else__________________________;}设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:s->next=p->next;_________________;。设指针变量head指向双向链表中的头结点,指针变量p指向双向链表中的第一个结点,则指针变量p和指针变量head之间的关系是p=_________和head=__________(设结点中的两个指针域分别为llink和rlink)。设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为__________。完全二叉树中第5层上最少有__________个结点,最多有_________个结点。设有向图中不存在有向边<Vi,Vj>,则其对应的邻接矩阵A中的数组元素A[i][j]的值等于____________。设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则第4趟直接选择排序结束后的结果为_____________________________。设连通图G中有n个顶点e条边,则对应的最小生成树上有___________条边。设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与___________相互交换即可。三、判断题(每题2分,共20分)如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词。()设初始记录关键字基本有序,则快速排序算法的时间复杂度为O(nlog2n)。()分块查找的基本思想是首先在索引表中进行查找,以便确定给定的关键字可能存在的块号,然后再在相应的块内进行顺序查找。()二维数组和多维数组均不是特殊的线性结构。()向二叉排序树中插入一个结点需要比较的次数可能大于该二叉树的高度。()如果某个有向图的邻接表中第i条单链表为空,则第i个顶点的出度为零。()非空的双向循环链表中任何结点的前驱指针均不为空。()不论线性表采用顺序存储结构还是链式存储结构,删除值为X的结点的时间复杂度均为O(n)。()图的深度优先遍历算法中需要设置一个标志数组,以便区分图中的每个顶点是否被访问过。()稀疏矩阵的压缩存储可以用一个三元组表来表示稀疏矩阵中的非0元素。()四、算法设计题(每题15分,共30分)设计一个在链式存储结构上统计二叉树中结点个数的算法。设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。PAGEPAGE10《数据结构》模拟试题11参考答案一、单项选择题(每题3分,共30分)1.C 2.C 3.C 4.B 5.B6.C 7.B 8.C 9.A 10.A二、填空题(每小题2分,共20分)(49,13,27,50,76,38,65,97)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三、判断题(每题2分,共20分)1.对 2.错 3.对 4.错 5.错6.对 7.对 8.对 9.对 10.对四、算法设计题(每题15分,共30分)设计一个在链式存储结构上统计二叉树中结点个数的算法。voidcountnode(bitree*bt,int&count){if(bt!=0){count++;countnode(bt->lchild,count);countnode(bt->rchild,count);}}设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。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;}}《数据结构》模拟试题12一、填空题(每小题2分,共18分)1、数据的逻辑结构包括,和三种结构。2、算法分析的两个主要方面是和。3、在双向链表中,每个结点有两个指针域,一个指向,另一个指向。4、空串是,其长度等于。5、有一个10阶对称矩阵A,采用压缩存储方式,以行为主存储下三角形到一个一维数组中,若A[0][0]的地址是200(每个元素占2个基本存储单元),则A[9][5]的地址是。6、在非空二叉树的中序遍历序列中,根结点的右边。7、采用邻接链表存储图,则图的深度优先搜索算法类似于二叉树的。8、在分块查找方法中,首先查找,然后再查找相应的。9、对于文件,按其记录的类型可将文件分为文件、文件。二、单项选择题(请将答案写在题目后的括号中。每题2分,共18分)1、有如下递归函数fact(n),其时间复杂度是()。Fact(intn){if(n<=1)return1;elsereturn(n*fact(n-1));}(A)O(n)(B)O(n2)(C)O(㏒2n)(D)O(n㏒2n)2、设有一个栈顶指针为top的顺序栈S,top为0时表示栈空,则向S中压入一个元素P执行的操作是()。(A)S[top++]=p;(B)S[++top]=p;(C)S[--top]=p;(D)S[top--]=p;3、稀疏矩阵一般的压缩存储方法有主要有()两种。(A)二维数组和三维数组(B)三元组和散列(C)三元组和十字链表(D)散列和十字链表4、一般树的存储结构主要有()。(A)双亲表示法,孩子表示法,链表表示法(B)双亲表示法,孩子表示法,孩子—兄弟表示法(C)双亲表示法,孩子—兄弟表示法,链表表示法(D)双亲表示法,孩子—兄弟表示法,链表表示法5、一棵有n(n≥0)个结点的满二叉树的叶子结点的数目是,非叶子结点的数目是。()(A)2[㏒2n]2[㏒2n](B)2[㏒2n]-12[㏒2n](C)2[㏒2n]-12[㏒2n]-1(D)2[㏒2n]2[㏒2n]-16、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍,所有顶点的度之和等于所有顶点的入度之和的倍。()(A)1/2,1(B)1,2(C)2,1(D)1,47、设有一个长度为12的有序表,采用二分查找方法对该表进行查找时,在表内各元素等概率情况下查找成功所需的平均比较次数为。() (A)35/12(B)37/12(C)39/12(D)43/128、设有一组记录的关键字是(37,28,56,80,60,14,25,50),用快速排序法以第一个记录为基准得到的一次划分结果是()。(A)25,28,37,14,56,80,60,50(B)25,28,37,14,60,80,56,50(C)25,28,14,37,60,80,56,50(D)25,28,14,37,60,56,80,509、文件在外存上的上的组织方式称为文件的物理结构。基本的物理结构有:()(A)顺序结构,链接结构,线性结构(B)线性结构,链接结构,索引结构(C)顺序结构,链接结构,线性结构(D)顺序结构,链接结构,索引结构三、分析题(每题6分,共30分)1、设有一棵二叉树,其先序遍历序列是abdgehicf,中序遍历序列是gdbheiafc,请画出这棵二叉树,然后画出其后序线索化树。2、对于下图中的网,写出该网的邻接链表;然后写出其广度优先搜索生成树(假设从顶点V1出发);最后给出按Prime算法从顶点V5出发得到的最小生成树。11524389113341373、将关键字序列(14,9,18,7,4,13,25,19,6)依此插入到初态为空的二叉排序树中,请画出所得到的树T;然后画出删除18之后的二叉排序树T1;最后再画出插入18之后的二叉排序树T2。4、线性表的关键字集合{71,25,8,29,42,69,95,33,17,56,47},共有11个元素,已知散列函数为:H(k)=kMOD11,采用链地址处理冲突,请给出对应的散列表结构,并计算该表成功查找的平均查找长度。5、已知序列{35,29,52,60,17,9,38,27,13,45},请给出采用归并排序法对该序列做非递减排序时的每一趟结果。四、算法填空(每空2分,共20分)请在下面各个算法的空白处填上相应的语句,以实现算法功能。每个空白处只能填一个语句。1、循环队列Q的队首元素出队操作算法。#defineMax_Queue_Size100ElemTypeDelete_CirQueue(SqQueueQ){ElemTypex;if()printf(“TheCircularQueueisNull!”);else{x=Q.Queue_array[Q.front];;}}2、二叉树中序遍历的非递归算法。#defineMax_Node_Num50VoidInorderTraverse(BTNode*T){BTNode*Stack[Max_Node_Num],*p=T;inttop=0,bool=1;if(T==NULL)printf(“TheBinaryTreeisEmpty!\n”);else{do{while(p!=NULL){stack[++top]=p;p=p->Lchild;}if(top==0)bool=0;else{;visit(p->data);;}}while();}}3、折半查找算法。intBin_Search(SSTableST,KeyTypekey){intLow=1,High=ST.length,Mid;while(Low<High){;if(ST.elem[Mid].key==key)return(Mid);elseif(ST.elem[Mid].key<key)Low=Mid+1;elseHigh=Mid-1;};}4、简单选择排序算法。voidsimple_selection_sort(Sqlist*L){intm,n,k;for(m=1;m<L->length;m++){k=m;for(n=m+1;n<=L->length;n++)if()k=n;if(){L->R[0]=L->R[m];L->R[m]=L->R[k];;}五、编写算法(要求给出相应的数据结构说明,14分)将以L为头结点的单链表中值重复的结点删除,使所得的结果链表中所有结点的值均不相同;并对算法进行分析。《数据结构》模拟试题12参考答案一、填空题(每小题2分,共18分)1、线性结构树形结构图(或网)状结构2、时间复杂度空间复杂度3、(直接)前驱结点(直接)后继结点4、零个字符组成的串05、3006、只有右子树上的所有结点7、先序遍历8、索引块9、操作系统数据库二、单项选择题(请将答案写在题目后的括号中。每题2分,共18分)题号123456789答案ABCBDBBCD三、分析题(每题6分,共30分)fabcehifabcehidgNULLfabcehidg图(a)二叉树图(b)后序线索化树2、解:该网的邻接链表如下图所示:00123412345293758∧1934413511∧241743∧2133353∧2114318∧从顶点V1出发的广度优先搜索的顶点序列是1→2→3→5→4,相应的生成树如下:11524389137从顶点V1出发广度优先搜索生成树从顶点V5出发的最小生成树1524333473、解:将关键字序列(14,9,18,7,4,13,25,19,6)依此插入到初态为空的二叉排序树中所得到的二叉排序树T如图(a)所示;删除18之后的二叉排序树T1如图(b)所示;最后再插入18之后的二叉排序树T2。149149197134256图(b)删除18的二叉排序树14918713419256图(a)生成的二叉排序树141491971341825
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《大学物理(上册)》课件-第1章
- 2025-2030全球车辆燃油油位计行业调研及趋势分析报告
- 2025-2030全球电积铜行业调研及趋势分析报告
- 2025年全球及中国直接空气捕获和储存(DACS)行业头部企业市场占有率及排名调研报告
- 2025-2030全球多层土壤传感器行业调研及趋势分析报告
- 2025年全球及中国阻燃塑料薄膜和片材行业头部企业市场占有率及排名调研报告
- 2025-2030全球医用手指康复训练仪行业调研及趋势分析报告
- 2025-2030全球化学谷物熏蒸剂行业调研及趋势分析报告
- 2025年全球及中国智慧教育公共服务平台行业头部企业市场占有率及排名调研报告
- 2025年全球及中国工业胶囊填充设备行业头部企业市场占有率及排名调研报告
- 2025年度院感管理工作计划(后附表格版)
- 励志课件-如何做好本职工作
- 化肥销售工作计划
- 2024浙江华数广电网络股份限公司招聘精英18人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年山东省济南市中考英语试题卷(含答案解析)
- 2024年社区警务规范考试题库
- 2025中考英语作文预测:19个热点话题及范文
- 第10讲 牛顿运动定律的综合应用(一)(讲义)(解析版)-2025年高考物理一轮复习讲练测(新教材新高考)
- 静脉治疗护理技术操作标准(2023版)解读 2
- 2024年全国各地中考试题分类汇编(一):现代文阅读含答案
- GB/T 30306-2024家用和类似用途饮用水处理滤芯
评论
0/150
提交评论