(完整word版)数据结构试题试卷二含答案

合集下载

(完整word版)数据结构试卷及答案(word文档良心出品)

(完整word版)数据结构试卷及答案(word文档良心出品)

注意事项:1、下面关于串的叙述中,哪一个是不正确的?( )A .串是字符的有限序列B .空串是由空格构成的串C .模式匹配是串的一种重要运算D .串既可以采用顺序存储,也可以采用链式存储 2、设无向图的顶点个数为n ,则该图最多有( )条边。

A .n-1B .n(n-1)/2C . n(n+1)/2D .0 3、以下数据结构中,( )是非线性数据结构。

A .树B .字符串C .队列D .栈 4、下面关于线性表的叙述中,错误的是哪一个?( )A .线性表采用顺序存储,必须占用一片连续的存储单元。

B .线性表采用顺序存储,便于进行插入和删除操作。

C .线性表采用链接存储,不必占用一片连续的存储单元。

D .线性表采用链接存储,便于插入和删除操作。

5、假设以数组A[m]存放循环队列的元素,其头尾指针分别为front 和rear ,则当前队列中的元素个数为( )。

A .(rear-front+m)%mB .rear-front+1C .(front-rear+m)%mD .(rear-front)%m6、在单链表指针为p 的结点之后插入指针为s 的结点,正确的操作是( )。

A .p->next=s; s->next=p->next;B .s->next=p->next; p->next=s;C .p->next=s; p->next=s->next;D .p->next=s->next; p->next=s; 7、设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。

A .1,2,4,3B .2,1,3,4C .1,4,3,2D .4,3,1,2, 8、广义表(a,(b,c),d,e )的表头和表尾分别为( )。

A .a 和(b,c),d,e B .(a )和(b,c),d,eC .a 和 ((b,c),d,e)D .(a) 和((b,c),d,e)9、栈和队都是( )A .顺序存储的线性结构B .链式存储的非线性结构C .限制存取点的线性结构D .限制存取点的非线性结构 10、从逻辑上可以把数据结构分为( )两大类。

数据结构联考试卷2及答案

数据结构联考试卷2及答案

9.设某有向图的邻接表中有 n 个表头结点和 m 个表结点,则该图中有( 条有向边 A. m B. m – 1 C. n D. n - 1 )。

10.从广义表 LS =((a, b), c, d)中分解出原子 b 的运算是( A. head(tail(LS)) C. head(tail(head(LS))) B. tail(head(LS)) D. tail(tail(head(LS))) )个度为 2 的结点。
第 二 页 共 六 页
试卷 2
4. 假设为循环队列分配的向量空间为 Q[30],若队列的长度和队首指针分别为 15 和 19,则当前队尾指针的值为(备注:队首指针指向队首元素所在的 位置,队尾指针指向队尾元素的下一个位置)。 5. 表达式求解是应用的一个典型例子。 6. 已知一棵完全二叉树共有 865 个结点,则该二叉树中有个叶子结点。 7. 含 n 个顶点的无向连通图中至少含有______条边。 8. 如果待排序列已基本有序, 那么在堆排序和快速排序中选择对待排序 列进行排序较为合适。 9. 对表长为 6000 的索引顺序表进行分块查找,假设每一块的长度均为 15,且 以顺序 查找确定块,则在等概率的假设下 ,其查找成功的平均查找长度 为 。 10. 已知有待排序{54,23,88,45,60,53,24,92,32},请写出第一趟快速 排序的结果。
第 四 页 共 六 页
试卷 2
数据结构联考试卷(2)参考答案
一、单项选择题 (每小题 2 分,共 30 分) 1 C 2 B 3 D 4 C 5 D 6 A 7 D 8 D 9 A 10 C 11 C 12 C 13 C 14 B 15 A
二、填空题(每小题 2 分,共 20 分) 1.数据元素之间的逻辑关系 2.顺序 3.L -> next == L && L -> prior == L 4. 4 5.栈 6.433 7. n - 1 8.堆排序 9. 208.5 10. 32,23,24,45,53,54,60,92,88 三、应用题(共 34 分) 1.(1)(7’) 2.(1)(3’)

数据结构习题及答案 (2)

数据结构习题及答案 (2)

第二章线性表一、选择题1.一个线性表第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( )(A)110 (B)108(C)100 (D)120参考答案:B2. 向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动()个元素。

(A)64(B)63 (C)63.5 (D)7参考答案:C3.线性表采用链式存储结构时,其地址()。

(A) 必须是连续的 (B) 部分地址必须是连续的(C) 一定是不连续的 (D) 连续与否均可以参考答案:D4. 在一个单链表中,若p所指结点不是最后结点,在p之后插入s所指结点,则执行()(A)s->next=p;p->next=s; (B) s->next=p->next;p->next=s;(C)s->next=p->next;p=s; (D)p->next=s;s->next=p;参考答案:B5.在一个单链表中,若删除p所指结点的后续结点,则执行()(A)p->next=p->next->next; (B)p=p->next; p->next=p->next->next;(C)p->next=p->next; (D)p =p->next->next;参考答案:A6.下列有关线性表的叙述中,正确的是()(A)线性表中的元素之间隔是线性关系(B)线性表中至少有一个元素(C)线性表中任何一个元素有且仅有一个直接前趋(D)线性表中任何一个元素有且仅有一个直接后继参考答案:A7.线性表是具有n个()的有限序列(n≠0)(A)表元素(B)字符(C)数据元素(D)数据项参考答案:C二、判断题1.线性表的链接存储,表中元素的逻辑顺序与物理顺序一定相同。

()2.如果没有提供指针类型的语言,就无法构造链式结构。

()3.线性结构的特点是只有一个结点没有前驱,只有一个结点没有后继,其余的结点只有一个前驱和后继。

数据结构试题

数据结构试题

数据结构试题部分题目或答案有问题,现将已经发现的公布如下,同学在作这些模拟题的时候应着重做题方法的理解,遇到问题以教材或课件为准,不确定的地方可找同学商量或问我(1)试卷1第一套填空题第1题,试卷1第2套选择题第3题关于循环队列队头指针和队尾指针的约定与教材不一致,以教材或课件为准,实际上front指向的是队头元素,rear指向当前尚未被占用的第一个队列空间,队慢或队空的判定条件及入队/出队等操作具体可参考课件或教材(2)试卷1第一套应用题第5题,不声明邻接点顺序时默认编号最小的邻接点为第一邻接点,该图的深度优先遍历序列为*****,答案错。

此外,当给定邻接表时则邻接点顺序按照邻接表中的前后顺序确定,如试卷1第二套填空题第8题(3)试卷1第五套应用题第4题,两种方法处理冲突的方法下所求ASL值相等都为7/6(4)试卷1第五套填空题第8题答案给出的是小顶堆需满足的条件,大顶堆满足ki=k2i ki=k2i+1 (5)试卷1第一套填空题第9题模式匹配的BF算法以书中答案为准,两者区别在于,教材中存储字符串的数组的0号单元不存放有效字符,而试卷答案认为0号单元也放数组(6)试卷1第二套填空题第7题给定初始序列建堆未声明建大顶堆还是小顶堆,答案中给出的是小顶堆,大顶堆也要会建(7)试卷1第二套应用题第1题第4趟直接插入排序的结果应为(22,40,45,48,80,78);答案中给出的实际为第三趟,关键在于首元素自身有序不算一趟(8)试卷1第二套填空题第2题入栈操作以教材为准,教材中top是指向的栈顶(第一个空位置)的指针,与该套试卷中栈顶结构不一样,以教材为准(9)试卷1第三套填空题第12题答案中给出的不是拓扑序列,正确的是1423 (10)试卷1中多处遇到空指针NULL时写的是0而非NULL,实际两者皆可(11)试卷1第4套填空题第2题双向链表的删除答案错,应为p―llink-rlink=p-rlink; p-rlink-llink=p-llink;此外,注意课堂中讲的指针名和操作方法(12)第4套填空题第6题答案错,设哈夫曼树中共有99个结点,则该树中有____50_____个叶子结点;若采用二叉链表作为存储结构,则该树中有__100___个空指针域。

《数据结构》试卷及答案2

《数据结构》试卷及答案2

广州大学2017-2018学年第二学期考试卷课程《数据结构》考试形式(闭卷,考试)物理与电子工程学院电子系电子061、062、063 专业学号姓名一、判断题(对打√,错打×。

每题1分,共15分)1、在单链表中,任何两个元素的存储位置之间都有固定的联系,因此可以从头结点进行查找任何一个元素。

( )2、线性表的线性存储结构优于链表存储结构。

( )3、完全二叉树的某结点若无左孩子,则必定是叶子结点。

( )4、无向图用邻接矩阵表示,图中的边数等于邻接矩阵元素之和的一半。

( )5、在图结构中,结点可以没有任何前趋和后继()。

6、在拓扑排序序列中,任意两个相继结点v i和v j都存在从v i到v j的路径。

( )7、结点数固定的二叉树中,完全二叉树具有最小路径长度( )。

8、中序线索树中,右线索若不为空,则一定指向其双亲结点( )。

9、有向图用邻接矩阵表示,容易实现求结点度数的操作( )。

10、二叉树是度最大为2的有序树( )。

11、按广度优先搜索遍历图时,与始点相邻的结点先于不与始点相邻的结点访问( )12、若有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑排序序列必定存在( )。

13、若有向图G中包含一个环,则G的结点间不存在拓扑排序( )。

14、图的拓扑排序序列是唯一的( )。

15、网络的最小代价生成树是惟一的()。

二、选择题(每题2分,共20分)1.在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.常对数组进行的两种基本操作是( )。

A.建立与删除B.索引和修改C.查找和修改D.查找和索引3.下列结论中不正确的是( )。

A.按广度优先搜索遍历图时,与始点相邻的结点先于不与始点相邻的结点访问。

B.一个图按广度优先搜索法遍历的结果是唯一的。

C.无向图的邻接表表示法中,表中结点的数目是图中边的条数2倍。

(完整版)数据结构试题及答案

(完整版)数据结构试题及答案

数据结构试卷(一)王彬一、单选题(每题2 分,共20分)1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。

cA.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

模拟试题二模拟试题二一、选择题(28分)1.设一数列的顺序为l,2,3,4,5,通过栈结构不可能排成的顺序数列为( )。

A)3,2,5,4,l B)1,5,4,2,3C)2,4,3,5,l D)4,5,3,2,l2。

二叉树的第3层最少有()个结点。

A)0 B)1 C)2 D)33。

—个n个顶点的连通无向图,其边的个数至少为( )。

A) n-l B)n C)n+l D)nlogn4。

下列排序方法中,( )的比较次数与记录的初始排列状态无关。

A)直接插入排序 B)起泡排序C)快速排序 D)直接选择排序5.-棵哈夫曼树总共有II个结点,则叶子结点有( )个。

A)5 B)6 C)7 D)96.已知某算法的执行时间为(n+n2)+log2(n+2),n为问题规模,则该算法的时间复杂度是( )。

A)O(n)B)O(n2) C)O(log2n)D)O(nlog2n)7。

如果一棵树有10个叶子结点,则该树总共至少有( )个结点。

A)lO B)11 C)19 D) 218。

—个100×100的三角矩阵a采用行优先压缩存储后,如果首元素a[0][0]是第一个元素,那么a[4] [2]是第( )个元素。

A)13 B) 401 C) 402 D)4039.有一棵二叉树如题图1,该树是()。

A)二叉平衡树B)二叉排序树C)堆的形状D)以上都不是10。

对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树,其时间复杂度为(),利用Kruska算法的时间复杂度为().A)O(log2n) B)0(n2) C)O(ne) D)O(elog2ne)11.具有n个顶点的完全有向图的边数为( ).A)n(n—l)/2 B)n(n-l) C) n2 D)n2—112。

设有100个元素,用折半查找时,最大比较次数为(),最小比较次数为()。

A)25 B)7 C) 10 D)l13。

在内部排序中,排序时不稳定的有().A)插入排序B)冒泡排序C)快速排序D)归并排序14.串是一种特殊的线性表,其特殊性体现在()。

A)可以顺序存储B)数据元素是一个字符C)可以链接存储D)数据元素可以是多个字符二、填空题(30分)1。

对于一个以顺序实现的循环队列Q[O…m—1],队首、队尾指针分别为f和r,其判空的条件是____ ______,判满的条件是__________.2.具有64个结点的完全二叉树的深度为__________。

3.给定一个整数集合{3,5,6,9,12),画出其对应的一棵哈夫曼树__________。

4。

如果指针p指向一棵二叉树的一个结点,则判断p没有左孩子的逻辑表达式为__________.5.下面为朴素的模式匹配算法,请在算法的下划线处填上正确的子句。

int index (String*s, String*t)String *S,*t;{i=j=O;while((i〈s—>len)&&(j〈t—〉len))if(s-〉ch [i]==t-〉ch[j]){i=i+1:j=j+l;} else{i=__________;j=__________;}if(j ==t-〉len)return(i-t—〉len);elsereturn(-1);}6。

-个nxn的对称矩阵,如果以行或列为主序存入内存,则其容量为__________.7。

设F是森林,B是由F转换得到的二叉树,F中有n个非终端结点,B中右指针域为空的结点有__________.8。

先序序列和中序序列相同的二叉树为__________。

9.已知一棵二叉树的中序遍历结果为DBHEAFICG,后序遍历结果为DHEBIFGCA,画出该二叉树______ ____.lO.在进行直接插入排序时,其数据比较次数与数据的初始排列__________关;而在进行直接选择排序时,其数据比较次数与数据的初始排列__________关。

II。

一个连通图的生成树是该图的连通子图。

若这个连通图有n个顶点,则它的生成树有__________条边。

三、应用题(12分)1。

设散列表的地址空间为0~16;,开始时散列表为空,用线性探测开放地址法处理冲突,对于数据元素Jan,Feb,Mar,Jun,Aug,Sep,Oct,Nov,Dec,试构造其对应的散列表,H(key)=|_i/2_|,其中i为关键字中第一个字母在字母表中的序号。

求搜索成功的平均搜索长度。

2。

设有5000个无序的元素,希望用最快的速度挑选出其中前10个最大的元素,在快速排序、堆排序和基数排序方法中,采用哪种方法最好?为什么?3。

对于题图2,试给出:(1)每个顶点的入度和出度。

(2)邻接矩阵。

(3)逆邻接表。

(4)强连通分量。

四、算法设计(30分)1。

有一个带首结点的单链表,编写在值为x的结点之后插入m个结点的算法。

2。

设计一个算法,求出指定结点在给定的二叉排序树中所在的层次.3.设计一个算法,建立无向图(n个顶点,e条边)的邻接表模拟试题二答案模拟试题二参考答案一、选择题1。

B 2。

A 3.A 4。

D 5。

B6.B 7。

B 8。

D 9。

B10。

B11。

A 12。

D 13。

C 14。

D二、填空题1.Ff, (r+l)%m=f2. 73。

4.p->lchild==Null5.i-j—l,06.n(n+l)/27。

n+l8.单右子树二叉树或孤立结点9。

10。

有,无11.极小,n-l三、应用题1。

使用散列函数H(key)=Li/21,有:H(Jan)=5,H(Feb)=3,H(Mar)=6, H(Jun)=5, H(Aug)=0,H(Sep)=8, H(Oct)=7,H(Nov)=7,H(Dec)=2(l)利用线性探测开放地址法造表:(2)搜索成功的平均搜索长度为:ASL succ=(1+5+1+ 1+6+ 1+1+1+1)=22。

从平均时间性能而言,快速排序最佳,所需时间最省O(nlogn),但在最坏情况下的时间性能为O(VI2)不如堆排序O(nlogn)。

基数排序最适合n值较大而关键字较小的序列。

一般来讲,当n比较大且要选的数据k<<n时,采用堆排序方法最好.3。

(1)各顶点入度、出度和度如下:(2)邻接矩阵如下:(3)逆邻接表如下:(4)强连通分量是:四、算法设计1。

在单链表的x结点之后插入m个结点的算法如下:linklist insert (linklist *head,float x,int m){ linklist *p,*q,*s;int i;float b;p=head—>next;while (p!=NULL&&p—〉data l=x)p=p-〉next;if (p==NULL)printf ("%f x not found\n",x);else {q=p—〉next;for(i=1;i<=m;i++) {s= (linklist *)malloc (sizeof( linklist));scanf("%f",&b);s->data=b;p->next=s;p=s;}p-〉next=q;}return head;}2.求指定结点在给定的二叉排序树中所在的层次的算法:void level (bitree *t, bitree *p,int h,int k)/*t为二叉树的指针,p为待找的结点,h为p结点的层数,k为当前的层数*/ { if (t==NULL)h=0;elseif(p==t) h=k;//找到指定结点*pelse {level (p,—>lchild,h,k+l);//在左子树中查找if(h==-1)level (p, t—〉rchild,h,k+l);//在右子树中查找}}3.建立无向图(n个顶点,e条边)的邻接表的算法:#include<stdio.h>#include〈stdlib.h〉#define Maxver n /*定义图的最大顶点数*/#define MaxEdge e /*定义图的最大边数+/typedef int Vertextype; /*定义顶点的数据类型*/typedef int Vertextype vexlist [Maxver]; /*vexlist为存储顶点的数组*/struct edgenode{/*定义邻接表的边结点类型*/int adjvex;/*邻接点域*/struct edgenode *next;};typedef struct edgenode *adjlist [Maxver];/*定义adj list为存储表头指针的数组*/ void create (vexlist GV, adj list GL,int n,int e)/*从键盘输入n和e*/{int i,j,kprintf("输入%d个顶点数据\n”,n); /*建立顶点数组*/for (i=0;i〈n;i++)scanf(”ood”,&GV[i]);for (i=0;i<n;i++)GV[i] =NULL;printf("输入ood条无向无权边\n”,e);/*建立邻接表*/for (k=1;k<=e;k++);{struct edgenode *p;scanf(”oodood”,&i,&j);/*输入一条边(i,j)*/p=malloc(sizeof( struct edgenode)); /*分配新结点*/p->adjvex=j;/*将j的值赋给新结点的邻接点域*/p—〉next=GL [i];GL[i]=p;p=malloc (sizeof(struct edgenode)); /*再分配新结点*/p-〉adj vex=i;/*将i的值赋给新结点的邻接点域*/p—>next=GL[j];GL[j]=p;}}。

相关文档
最新文档