文档库 最新最全的文档下载
当前位置:文档库 › 数据结构第7章-答案

数据结构第7章-答案

数据结构第7章-答案
数据结构第7章-答案

一、单选题

C01、在一个图中,所有顶点的度数之和等于图的边数的倍。

A)1/2 B)1 C)2 D)4

B02、在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的倍。

A)1/2 B)1 C)2 D)4

B03、有8个结点的无向图最多有条边。

A)14 B)28 C)56 D)112

C04、有8个结点的无向连通图最少有条边。

A)5 B)6 C)7 D)8

C05、有8个结点的有向完全图有条边。

A)14 B)28 C)56 D)112

B06、用邻接表表示图进行广度优先遍历时,通常是采用来实现算法的。

A)栈B)队列C)树D)图

A07、用邻接表表示图进行深度优先遍历时,通常是采用来实现算法的。

A)栈B)队列C)树D)图

A08、一个含n个顶点和e条弧的有向图以邻接矩阵表示法为存储结构,则计算该有向图中某个顶点出度的时间复杂度为。

A)O(n) B)O(e) C)O(n+e) D)O(n2)

C09、已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是。

A)0 2 4 3 1 5 6 B)0 1 3 6 5 4 2 C)0 1 3 4 2 5 6 D)0 3 6 1 5 4 2

B10、已知图的邻接矩阵同上题,根据算法,则从顶点0出发,按广度优先遍历的结点序列是。

A)0 2 4 3 6 5 1 B)0 1 2 3 4 6 5 C)0 4 2 3 1 5 6 D)0 1 3 4 2 5 6

D11、已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是。

A)0 1 3 2 B)0 2 3 1 C)0 3 2 1 D)0 1 2 3

A12、已知图的邻接表如下所示,根据算法,则从顶点0出发按广度优先遍历的结点序列是。

A)0 3 2 1 B)0 1 2 3 C)0 1 3 2 D)0 3 1 2

A13、图的深度优先遍历类似于二叉树的。

A)先序遍历B)中序遍历C)后序遍历D)层次遍历

D14、图的广度优先遍历类似于二叉树的。

A)先序遍历B)中序遍历C)后序遍历D)层次遍历

B15、任何一个无向连通图的最小生成树。

A)只有一棵B)一棵或多棵C)一定有多棵D)可能不存在

A16、对于一个具有n个结点和e条边的无向图,若采用邻接表表示,则顶点表的大小为,所有边链表中边结点的总数为。

A)n、2e B)n、e C)n、n+e D)2n、2e

C17、判断有向图是否存在回路,可以利用___算法。

A)关键路径B)最短路径的Dijkstra C)拓扑排序D)广度优先遍历

A18、若用邻接矩阵表示一个有向图,则其中每一列包含的“1”的个数为。

A)图中每个顶点的入度B)图中每个顶点的出度C)图中弧的条数D)图中连通分量的数目

C19、求最短路径的Dijkstra算法的时间复杂度是___。

A)O(n) B)O(n+e) C)O(n2) D)O(n*e)

B20、设图G采用邻接表存储,则拓扑排序算法的时间复杂度为。

A)O(n) B)O(n+e) C)O(n2) D)O(n*e)

D21、带权有向图G用邻接矩阵A存储,则顶点i的入度等于A中。

A)第i行非∞的元素之和B)第i列非∞的元素之和

C)第i行非∞且非0的元素个数D)第i列非∞且非0的元素个数

C22、一个有n个顶点的无向图最多有条边。

A)n B)n(n-1) C)n(n-1)/2 D)2n

D23、对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是。

A)n B)(n-1)2C)n-1 D)n2

A24、对某个无向图的邻接矩阵来说,。

A)第i行上的非零元素个数和第i列的非零元素个数一定相等

B)矩阵中的非零元素个数等于图中的边数

C)第i行上,第i列上非零元素总数等于顶点v i的度数

D)矩阵中非全零行的行数等于图中的顶点数

D25、已知图的表示如下,若从顶点a出发按深度搜索法进行遍历,则可能得到的一种顶点序列为。

A)abecdf B)acfebd C)aebcfd D)aedfcb

B26、已知图的表示如上题,若从顶点a出发按广度搜索法进行遍历,则可能得到的一种顶点序列为。

A)abcedf B)abcefd C)aebcfd D)acfdeb

C27、有向图的邻接表存储结构如下图所示,则根据有向图的深度遍历算法,从顶点v1出发得到的顶点序列是。

A)v1,v2,v3,v5,v4 B)v1,v2,v3,v4,v5 C)v1,v3,v4,v5,v2 D)v1,v4,v3,v5,v2

B28、有向图的邻接表存储结构如上题所示,则根据有向图的广度遍历算法,从顶点v1出发得到的顶点序列是。

A)v1,v2,v3,v4,v5 B)v1,v3,v2,v4,v5 C)v1,v2,v3,v5,v4 D)v1,v4,v3,v5,v2

A29、一个图中有n个顶点且包含k个连通分量,若按深度优先搜索方法访问所有结点,则必须调用次深度优先遍历算法。

A)k B)1 C)n-k D)n

D30、以下不正确的说法是。

A)无向图中的极大连通子图称为连通分量

B)连通图的广度优先搜索中一般要采用队列来暂存刚访问过的顶点

C)图的深度优先搜索中一般要采用栈来暂存刚访问过的顶点

D)有向图的遍历不可采用广度优先搜索方法

A31、图中有关路径的定义是___。

A)由顶点和相邻顶点序偶构成的边所形成的序列B)由不同顶点所形成的序列

C)由不同边所形成的序列D)上述定义都不是

B32、设无向图的顶点个数为n,则该图最多有___条边。

A)n-1 B)n(n-1)/2 C)n(n+1)/2 D)n

A33、一个n 个顶点的连通无向图,其边的个数至少为___。

A)n-1 B)n C)n+1 D)nlogn

B34、要连通具有n 个顶点的有向图,至少需要___条边。

A)n-l B)n C)n+l D)2n

B35、在一个无向图中,所有顶点的度数之和等于所有边数___倍。

A)1/2 B)2 C)1 D)4

C36、在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的___倍。

A)1/2 B)2 C)1 D)4

A37、用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为___。

A)5 B)6 C)8 D)9

A38、用DFS 遍历一个无环有向图,并在DFS 算法退栈返回时打印相应的顶点,则输出的顶点序列是___。

A)逆拓扑有序B)拓扑有序C)无序的D)原顺序

B39、下列___的邻接矩阵是对称矩阵。

A)有向图B)无向图C)AOV网D)AOE网

BBD40、从邻接阵矩可以看出,该图共有①个顶点;如果是有向图该图共有②条弧;如果是无向图,则共有③条边。

①A)9 B)3 C)6 D)1 E)以上答案均不正确

②A)5 B)4 C)3 D)2 E)以上答案均不正确

③A)5 B)4 C)3 D)2 E)以上答案均不正确

B41、当一个有N 个顶点的图用邻接矩阵A 表示时,顶点Vi 的度是___。

B42、下列说法不正确的是___。

A)图的遍历是从给定的源点出发每一个顶点仅被访问一次B)图的深度遍历不适用于有向图

C)遍历的基本算法有两种:深度遍历和广度遍历D)图的深度遍历是一个递归过程

D43、无向图G=(V,E),其中:V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进行深度优先遍历,得到的顶点序列正确的是___。

A)abecdf B)acfebd C)aebcfd D)aedfcb

D44、如图所示,在5个序列“aebdfc、acfdeb、aedfcb、aefdcb、aefdbc”,符合深度优先遍历的序列有___个。

A)5 B)4 C)3 D)2

CC45、图中给出由7个顶点组成的无向图。从顶点1出发,对它进行深度优先遍历得到的序列是①,进行广度优先遍历得到的顶点序列是②。

①A)1354267 B)1347652 C)1534276 D)1247653 E)以上答案均不正确

②A)1534267 B)1726453 C)l354276 D)1247653 E)以上答案均不正确

B46、在图采用邻接表存储时,求最小生成树的Prim算法的时间复杂度为___。

A)O(n) B)O(n+e) C)O(n2) D)O(n3)

CABA47、下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为①,下面步骤重复n-1次:②;③;最后:④。

①A)VT,ET 为空B)VT为所有顶点,ET为空

C)VT为网中任意一点,ET为空D)VT为空,ET为网中所有边

②A)选i属于VT,j不属于VT,且(i,j)上的权最小B)选i属于VT,j不属于VT,且(i,j)上的权最大

C)选i不属于VT,j不属于VT,且(i,j)上的权最小D)选i不属于VT,j不属于VT,且(i,j)上的权最大

③A)顶点i加入VT,(i,j)加入ET B)顶点j加入VT,(i,j)加入ET

C)顶点j加入VT,(i,j)从ET中删去D)顶点i,j加入VT,(i,j)加入ET

④A)ET中为最小生成树B)不在ET中的边构成最小生成树

C)ET 中有n-1条边时为生成树,否则无解D)ET中无回路时,为生成树,否则无解

A48、下面不正确的是___。

①求从指定源点到其余各顶点的Dijkstra最短路径算法中弧上权不能为负的原因是在实际应用中无意义;

②利用Dijkstra求每一对不同顶点之间的最短路径的算法时间是O(n3);(图用邻接矩阵表示)

③Floyd求每对不同顶点对的算法中允许弧上的权为负,但不能有权和为负的回路。

A)①②③B)①C)①③D)②③

A49、已知有向图G=(V,E),其中V={V,V,V,V,V,V,V},E={, , , , , , , , },则G的拓扑序列是___。

A)V,V,V,V,V,V,V B)V,V,V,V,V,V,V C)V,V,V,V,V,V,V D)V,V,V,V,V,V,V

D50、在有向图G的拓扑序列中,若顶点Vi在顶点Vj之前,则下列情形不可能出现的是___。

A)G中有弧 B)G中有一条从Vi到Vj的路径

C)G中没有弧 D)G 中有一条从Vj到Vi的路径

A51、关键路径是事件结点网络中___。

A)从源点到汇点的最长路径B)从源点到汇点的最短路径C)最长回路D)最短回路

C52、下面关于求关键路径的说法不正确的是___。

A)求关键路径是以拓扑排序为基础的

B)一个事件的最早开始时间同以该事件为尾的弧的活动最早开始时间相同

C)一个事件的最迟开始时间为以该事件为尾的弧的活动最迟开始时间与该活动的持续时间的差

D)关键活动一定位于关键路径上

B53、下列关于AOE网的叙述中,不正确的是___。

A)关键活动不按期完成就会影响整个工程的完成时间

B)任何一个关键活动提前完成,那么整个工程将会提前完成

C)所有的关键活动提前完成,那么整个工程将会提前完成

D)某些关键活动提前完成,那么整个工程将会提前完成

二、填空题

01、在有向图中,以顶点v为终点的边的数目称为v的入度。

02、含n个顶点的无向连通图中至少含有n-1条边。

03、图的存储结构表示有邻接矩阵、邻接表、十字链表、邻接多重表等多种存储结构。

04、图的存储结构中,十字链表可以看成是有向图的邻接表和逆邻接表结合起来得到的一种链表。

05、遍历图的2种常见方法是深度遍历和广度遍历。

06、有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的出度。

07、如果n个顶点的图是一个环,则它有n棵生成树。

08、n个顶点e条边的图,若采用邻接矩阵存储,则空间复杂度为O(n2)。若采用邻接表存储,则空间复杂度为O(n+e)。

09、图的逆邻接表存储结构只适用于有向图。

10、已知一个图的邻接矩阵表示,删除所有从第i个顶点出发的方法是将邻接矩阵的第i行全部置0。

11、图采用邻接矩阵表示,则计算第i个顶点入度的方法是求邻接矩阵第i列非0元素之和。

12、用邻接矩阵表示图时,则判断任意两个顶点vi和vj之间是否有路径相连,只需要检查第i行第j列的元素是否为0即可。

13、用普里姆(Prim)算法求具有n个顶点e条边的图的最小生成树的时间复杂度为O(n2);用克鲁斯卡尔(Kruskal)算法的时间复杂度是O(elog2e)。

14、对稀疏图最好用克鲁斯卡尔(Kruskal)算法求最小生成树,对稠密图最好用普里姆(Prim)算法来求解最小生成树。

15、用Dijkstra算法求某一顶点到其余各顶点间的最短路径是按路径长度递增的次序来得到最短路径的。

16、拓扑排序算法是通过重复选择具有0个前驱顶点的过程来完成的。

17、有向图G用邻接矩阵存储,则第i行的所有元素之和等于顶点i的出度。

18、有n个顶点的强连通有向图G至少有n条弧。

19、设有向图G的邻接矩阵为A,如果图中不存在弧,则A[i,j]的值为0。

20、在n个顶点的无向图中,若边数>n-1,则该图必是连通图,此断言是错误的。(正确/错误)

21、在有n个顶点的有向图中,每个顶点的度最大可达2(n-1)。

22、若一个有向图的邻接矩阵中对角线以下元素均为零,则该图的拓扑排序序列必定存在。(存在/不存在)

23、一个有向无环图的拓扑排序序列不一定是唯一的。(一定/不一定)

24、判断一个无向图是一棵树的条件是有n个顶点,n-1条边的无向连通图。

25、有向图G 的强连通分量是指有向图的极大强连通子图。

26、一个连通图的生成树是一个极小连通子图。

27、具有10个顶点的无向图,边的总数最多为45。

28、若用n表示图中顶点数目,则有n(n-1)/2条边的无向图成为完全图。

29、G 是一个非连通无向图,共有28条边,则该图至少有9个顶点。

30、在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要n条弧。

31、构造n个结点的强连通图,至少有n条弧。

32、有n个顶点的有向图,至少需要量n条弧才能保证是连通的。

33、N 个顶点的连通图用邻接矩阵表示时,该矩阵至少有2(N-1)个非零元素。

34、在图G 的邻接表表示中,每个顶点邻接表中所含的结点数,对于无向图来说等于该顶点的度;对于有向图来说等于该顶点的出度。

35、在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是第i列非0元素个数。

36、对于一个具有n 个顶点e 条边的无向图的邻接表的表示,则表头向量大小为n,邻接表的边结点个数为2e。

37、已知一无向图G=(V,E),其中V={a,b,c,d,e} E={(a,b),(a,d),(a,c),(d,c),(b,e)}现用某一种图遍历方法从顶点a 开始遍历图,得到的序列为abecd,则采用的是深度优先遍历方法。

38、一无向图G(V,E),其中V(G)={1,2,3,4,5,6,7},E(G)={(1,2), (1,3), (2,4), (2,5), (3,6), (3,7), (6,7), (5,1)},对该图从顶点3开始进行遍历,去掉遍历中未走过的边,得一生成树G'(V,E'), V(G')=V(G), E(G')= {(1,3), (3,6), (7,3), (1,2), (1,5), (2,4)},则采用的遍历方法是广度优先遍历。

39、为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需队列存放被访问的结点以实现遍历。

40、构造连通网最小生成树的两个典型算法是普里姆(prim)算法和克鲁斯卡尔(Kruskal)算法。

41、Prim(普里姆)算法适用于求边稠密的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求边稀疏的网的最小生成树。

42、下面描述的是一种构造最小生成树算法的基本思想。设要处理的无向图包括n 个节点V1,V2,...,Vn,用相邻矩阵A 表示,边的权全是正数。请在下列划线处填上正确叙述。

(1)若(Vi,Vj)是边,则A(i,j)的值等于(V i,V j)边上的权值,若(Vi,Vj)不是边,则A(i,j)的值是一个比任何边的权都大的数,矩阵的对角线元素全为0。

(2)构造最小生成树过程中,若节点Vi 已包括进生成树,就把相邻矩阵的对角线元素A(i,i)置成1,若(Vi,Vj)已包括进生成树,就把矩阵元素A(i,j)置成负值。

(3)算法结束时,相邻矩阵中为负的元素指出最小生成树的边。

43、有一个用于n 个顶点连通带权无向图的算法描述如下:(1)设集合T1与T2,初始均为空;(2)在连通图上任选一点加入T1;(3)以下步骤重复n-1 次:a)在i属于T1,j不属于T1的边中选最小权的边;b)该边加入T2。上述算法完成后,T2 中共有n-1条边,该算法称普里姆算法,T2 中的边构成图的最小生成树。

44、有向图G可拓扑排序的判别条件是不存在环。

45、Dijkstra 最短路径算法从源点到其余各顶点的最短路径的路径长度按递增次序依次产生,该算法弧上的权出现负值情况时,不能正确产生最短路径。

46、有向图G=(V,E),其中V(G)={0,1,2,3,4,5},用三元组表示弧及弧上的权(G)为{<0,5,100>, <0,2,10>, <1,2,5>, <0,4,30>, <4,5,60>, <3,5,10>, <2,3,50>, <4,3,20>},则从源点0到顶点3的最短路径长度是50,经过的中间顶点是顶点4。

47、上面的图去掉有向弧看成无向图则对应的最小生成树的边权之和为75。

48、在AOE网中,从源点到汇点路径上各活动时间总和最长的路径称为关键路径。

49、当一个AOV 网用邻接表表示时,可按下列方法进行拓扑排序。

(1)查邻接表中入度为0的顶点,并进栈;

(2)若栈不空,则①输出栈顶元素Vj,并退栈;②查Vj 的直接后继Vk,对Vk 入度处理,处理方法

是V k度减1,若V k入度己减到零,则V k顶点入栈;

(3)若栈空时,输出顶点数小于图的顶点数,说明有环,否则拓扑排序完成。

三、判断题

√01、树中的结点和图中的顶点就是指数据结构中的数据元素。

×02、在n 个结点的无向图中,若边数大于n-1,则该图必是连通图。

×03、有e 条边的无向图,在邻接表中有e 个结点。

×04、有向图中顶点V 的度等于其邻接矩阵中第V 行中的1 的个数。

√05、强连通图的各顶点间均可达。

×06、强连通分量是无向图的极大强连通子图。

×07、连通分量指的是有向图中的极大连通子图。

×08、十字链表是无向图的一种存储结构。

√09、无向图的邻接矩阵可用一维数组存储。

×10、用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。

√11、有n 个顶点的无向图, 采用邻接矩阵表示, 图中的边数等于邻接矩阵中非零元素之和的一半。

×12、有向图的邻接矩阵是对称的。

×13、无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。

×14、邻接矩阵适用于有向图和无向图的存储,但不能存储带权的有向图和无向图,而只能使用邻接表存储形式来存储它。

√15、用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中结点个数有关,而与图的边数无关。

×16、一个有向图的邻接表和逆邻接表中结点的个数可能不等。

×17、广度遍历生成树描述了从起点到各顶点的最短路径。

×18、不同的求最小生成树的方法最后得到的生成树是相同的。

√19、连通图上各边权值均不相同,则该图的最小生成树是唯一的。

√20、在图G 的最小生成树G1 中,可能会有某条边的权值超过未选边的权值。

×21、拓扑排序算法把一个无向图中的顶点排成一个有序序列。

×22、拓扑排序算法仅能适用于有向无环图。

√23、无环有向图才能进行拓扑排序。

×24、有环图也能进行拓扑排序。

×25、拓扑排序的有向图中,最多存在一条环路。

×26、任何有向图的结点都可以排成拓扑排序,而且拓扑序列不唯一。

×27、既使有向无环图的拓扑序列唯一,也不能唯一确定该图。

√28、若一个有向图的邻接矩阵对角线以下元素均为零,则该图的拓扑有序序列必定存在。

×29、对一个AOV 网,从源点到终点的路径最长的路径称作关键路径。

√30、关键路径是AOE 网中从源点到终点的最长路径。

×31、在表示某工程的AOE 网中,加速其关键路径上的任意关键活动均可缩短整个工程的完成时间。

×32、在AOE 图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。

√33、在AOE 图中,关键路径上活动的时间延长多少,整个工程的时间也就随之延长多少。

×34、当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。

四、简答题

01、写出下面有向图的所有强连通分量。

答:3个,分别是:a,bce,dfg

02、已知图的邻接表如下,画出图G的所有连通分量。

答:

03、如下图,分别用普里姆算法和克鲁斯卡尔算法从顶点1开始求最小生成树,写出按次序产生边的序列。说明:边用(i,j)方式表示。

答:普里姆算法产生边的序列:(1,3),(3,4),(4,6),(6,5),(1,2)

克鲁斯卡尔算法产生边的序列:(4,6),(1,3),(4,3),(6,5),(1,2)

04、如下图,写出所有的拓扑序列,并求在添加什么边之后仅可能有惟一的拓扑序列。

答:v1,v2,v3,v4

v1,v3,v2,v4

v2,v1,v3,v4

05、已知如图所示的有向图,请给出该图的:

(1) 每个顶点的入/出度;(2) 邻接矩阵;(3) 邻接表;(4) 逆邻接表。

答:

(1) 每个顶点的入/出度(2) 邻接矩阵

(3) 邻接表(4) 逆邻接表

06、写出无向带树图的邻接矩阵,并按普里姆算法填写表格中的内容,最后画出最小生成树;

V b c D e F g h U V-U

Vex lowcost a

4

a

3

A

a

a

a

a

{a}{bcdefgh}

Vex lowcost Vex lowcost Vex lowcost Vex lowcost Vex lowcost Vex Lowcost Vex lowcost

答:

(1)邻接矩阵为:

V b c d e f g h U V-U

Vex lowcost a

4

a

3

a

a

a

a

a

{a}{b,c,d,e,f,g,h}

Vex lowcost a

4

0c

5

a

a

a

c

5

{a,c}{b,d,e,f,g,h}

Vex lowcost 00c

5

b

9

a

a

c

5

{a,c,b}{d,e,f,g,h}

Vex lowcost 000d

7

d

6

d

5

d

4

{a,c,b,d}{e,f,g,h}

Vex lowcost 000d

7

d

6

d

5

0{a,c,b,d,h}{e,f,g}

Vex lowcost 000d

7

g

2

00{a,c,b,d,h,g}{f,e}

Vex lowcost 000f

3

000{a,c,b,d,h,g,f}{e}

Vex

lowcost

0000000{a,c,b,d,h,g,f,e}{ }

07、按克鲁斯卡尔算法写出下面无向带权图求最小生成树产生的边序列。

答:

fg(2)ac(3)fe(3)ab(4)dh(4)bd(5)dg(5)

08、已知二维数组表示的图的邻接矩阵如下图所示。试分别画出自顶点1出发进行遍历所得的深度优先生成树

和广度优先生成树。

答:

09、利用Dijkstra算法填写表格求图中从顶点a到其他各顶点间的最短路径,并写出最终结果。

终点

b c D e f g S(终点集)

Dist

k=1

k=2

k=3

k=4

k=5

k=6

ac:2(a,c)

af:6(a,c,f)

ae:10(a,c,e)

ad:11(a,c,f,d)

ag:14(a,c,f,d,g)

ab:15(a,b)

10、求出下图中从顶点1出发到其余各顶点的最短路径。

答:

11、设图G=(V,E),V={1,2,3,4,5,6},E={<1,2>,<1,3>,<2,5>,<3,6>,<6,5>,<5,4>,<6,4>}。画出图G,并写出图G中顶点的所有拓扑序列。

答:

1,2,3,6,5,4

1,3,2,6,5,4

1,3,6,2,5,4

五、代码填空题

01、图的存储结构定义如下:

typedef struct ArcCell

{ VRType adj; /*图中有1/0表示是否有边,网中表示边上的权值*/

/* InfoType *info; 与边相关的信息*/

} ArcCell, AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];

typedef struct

{ VertexType vexs[MAX_VERTEX_NUM]; /*顶点向量*/

AdjMatrix arcs; /*邻接矩阵*/

int vexnum,arcnum; /*图中当前顶点数和边数*/

} MGraph;

(1) 请写出下面函数实现的功能:顶点在顶点向量中的定位。

int LocateVex(MGraph G,VertexType v)

{ int i;

for(i=0;i<;i++)

if (strcmp(v,[i])==0) break;

return i;

}

(2) 下面函数的功能是在图中查找第1个邻接点,请填空。

int FirstAdjVex(MGraph G,int v)

{ int j,p=-1;

for(j=0;j<;j++)

if [v][j].adj==1)

{ p=j; break;}

return p;

}

(3) 下面函数的功能是在图中查找下一个邻接点,请填空。

int NextAdjVex(MGraph G,int v,int w)

{ int j,p=-1;

for(j=w+1;j<;j++)

if [v][j].adj==1)

{ p=j; break;}

return p;

}

02、已知图的邻接表表示的形式说明如下:

#define MaxNum 80

typedef struct node

{ int adjvex; irstedge;

while(p!=NULL)

{ if (!visited[p->adjves])

{ printf(G->adjlist[i].vertex, G->adjlist[p->adjvex].vertex);

DSFTree(G, p->adjvex);}

p=p->next; }

}

六、算法设计题

01、编写编历算法,完成对图的深度优先搜索和广度优先搜索。

答:深度优先搜索:课本P169算法和算法

广度优先搜索:课本P170算法

02、编写算法,由依次输入的顶点数目、弧的数目、各顶点的信息和各条弧的信息建立有向图的邻接表。答:Status Build_AdjList(ALGraph &G) ata=getchar(); i].firstarc) [i].firstarc=p;

else

{

for(q=[i].firstarc;q->nextarc;q=q->nextarc);

q->nextarc=p;

}

p->adjvex=j;p->nextarc=NULL;

}dj)

{

[i][j].adj=0;

;

}

return OK;

}irstarc;p;p=p->nextarc)

{

k=p->adjvex;

if(!visited[k]&&exist_path(k,j)) return 1;irstarc;p;p=p->nextarc,level--) { level++;

k=p->adjvex;

if(!visited[k]&&exist_path(k,j)) return 1;//i下游的顶点到j有路径

}//for

}//else

if (level==1) return 0;

}//exist_path_DFS

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 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 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

数据结构试题及答案10套

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C。正确性D.时空复杂度 2.2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向 的结点,则执行(A ). A. p-〉next=HL->next; HL-〉next=p; B. p-〉next=HL;HL=p; C。p->next=HL; p=HL;D. HL=p; p-〉next=HL; 3.3.对线性表,在下列哪种情况下应当采用链表表示?( B ) A.经常需要随机地存取元素 B。经常需要进行插入和删除操作 C。表中元素需要占据一片连续的存储空间D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序 列的是( C ) A. 2 3 1 ??? B. 3 2 1 C。 3 1 2 ??? D. 1 23 5. 5.AOV网是一种(D )。 A.有向图B.无向图C.无向无环图D.有向无环图 6.6。采用开放定址法处理散列表的冲突时,其平均查找长度(B)。 A.低于链接法处理冲突B.高于链接法处理冲突C.与链接法处理冲突相同 D。高于二分查找 7.7。若需要利用形参直接访问实参时,应将形参变量说明为(D ) 参数. A。值B。函数 C.指针 D。引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结 点都具有相同的( A )。 A。行号 B.列号 C.元素值 D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为( D )。 A。O(log 2n) B.O(nlog 2 n) C。0(n) D.0 (n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( C ). A.O(n) B. O(1) C。 O(log 2 n) D. O(n2)二、运算题(每题 6 分,共24分)

数据结构试卷带答案

数据结构试卷(一) 一、选择题(20分) 1.组成数据的基本单位是( 1.C )。 (A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量 2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是( C )。 (A) 线性结构(B) 树型结构(C) 图型结构(D) 集合 3.数组的逻辑结构不同于下列(D)的逻辑结构。 (A) 线性表(B) 栈(C) 队列(D) 树 4.二叉树中第i(i≥1)层上的结点数最多有(C)个。 (A) 2i (B) 2i(C) 2i-1(D) 2i-1 5.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为(.A )。 (A) p->next=p->next->next (B) p=p->next (C) p=p->next->next (D) p->next=p 6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是(.C )。 (A) 6 (B) 4 (C) 3 (D) 2 7.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为(C )。 (A) 100 (B) 40 (C) 55 (D) 80 8.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为(8.B (A) 3 (B) 4 (C) 5 (D) 1 9.根据二叉树的定义可知二叉树共有(B)种不同的形态。 (A) 4 (B) 5 (C) 6 (D) 7 10.设有以下四种排序方法,则(B )的空间复杂度最大。 (A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序 二、填空题(30分) 1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元 素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。 2.设线性表中有n个数据元素,则在顺序存储结构上实现顺序查找的平均时间复杂度为___________, 在链式存储结构上实现顺序查找的平均时间复杂度为___________。 3.设一棵二叉树中有n个结点,则当用二叉链表作为其存储结构时,该二叉链表中共有________个指 针域,__________个空指针域。 4.设指针变量p指向单链表中结点A,指针变量s指向被插入的结点B,则在结点A的后面插入结点 B的操作序列为______________________________________。 5.设无向图G中有n个顶点和e条边,则其对应的邻接表中有_________个表头结点和_________个表 结点。 6.设无向图G中有n个顶点e条边,所有顶点的度数之和为m,则e和m有______关系。 7.设一棵二叉树的前序遍历序列和中序遍历序列均为ABC,则该二叉树的后序遍历序列为__________。 8.设一棵完全二叉树中有21个结点,如果按照从上到下、从左到右的顺序从1开始顺序编号,则编 号为8的双亲结点的编号是___________,编号为8的左孩子结点的编号是_____________。 9.下列程序段的功能实现子串t在主串s中位置的算法,要求在下划线处填上正确语句。 int index(char s[ ], char t[ ]) { i=j=0; while(i

数据结构期末考试试题及答案

《数据结构》期末考试试题及答案 (2003-2004学年第2学期) 单项选择题1、C 2、D 3、A 4、D 5、C 6、D 7、A 8、B 9、C 10、C 、 1. 对于一个算法,当输入非法数据时,也要能作出相应的处理,这种要求称为 (c )。 (A)、正确性但).可行性(C).健壮性 2 ?设S为C语言的语句,计算机执行下面算法时, for(i=n-1 ; i>=0; i--) for(j=0 ; jvi; j++) (A)、n2(B). O(nlgn) 3?折半查找法适用于( a (D). 输入性 算法的时间复杂度为(d S; (C). O(n) (D). )。 O(n2) (A)、有序顺序表(B)、有序单链表 (C)、有序顺序表和有序单链表都可以 4 .顺序存储结构的优势是( d )。 (A)、利于插入操作(B)、利于删除操作 (C)、利于顺序访问(D)、利于随机访问 5. 深度为k的完全二叉树,其叶子结点必在第 (A)、k-1 ( B)、k (C)、k-1 和 6. 具有60个结点的二叉树,其叶子结点有 (A)、11 ( B)、13 ( C)、48 (D)、无限制 c )层上。 (D)、1 至 k 12个,则度过1 (D)、37 k 的结点数为( 7 .图的Depth-First Search(DFS) 遍历思想实际上是二叉树( 法的推广。 (A)、先序(B)、中序(C)、后序(D)、层序 8.在下列链队列Q中,元素a出队的操作序列为( a )遍历方 front (A )、 (B )、 (C)、 (D )、p=Q.front->next; p->next= Q.front->next; p=Q.front->next; Q.front->next=p->next; p=Q.rear->next; p->next= Q.rear->next; p=Q->next; Q->next=p->next; 9. Huffman树的带权路径长度WPL等于( (A)、除根结点之外的所有结点权值之和(C)、各叶子结点的带权路径长度之和(B) 、 ) 所有结点权值之和 根结点的值 b ■

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

数据结构试卷带答案

数据结构试卷带答案 问题说明 部分题目或答案有问题,现将已经发现的公布如下,同学在作这些模拟题的时候应着重做题方法的理解,遇到问题以教材或课件为准,不确定的地方可找同学商量或问我 (1)试卷1第一套填空题第1题,试卷1第2套选择题第3题关于循环队列队头指针和队尾指针的约定与教材不一致,以教材或课件为准,实际上front指向的是队头元素,rear指向当前尚未被占用的第一个队列空间,队慢或队空的判定条件及入队/出队等操作具体可参考课件或教材 (2)试卷1第一套应用题第5题,不声明邻接点顺序时默认编号最小的邻接点为第一邻接点,该图的深度优先遍历序列为123465,答案错。此外,当给定邻接表时则邻接点顺序按照邻接表中的前后顺序确定,如试卷1第二套填空题第8题 (3)试卷1第五套应用题第4题,两种方法处理冲突的方法下所求ASL值相等都为7/6 (4)试卷1第五套填空题第8题答案给出的是小顶堆需满足的条件,大顶堆满足ki>=k2i p->rlink->llink=p->llink;此外,注意课堂中讲的指针名和操作方法 (12)第4套填空题第6题答案错,设哈夫曼树中共有99个结点,则该树中有____50_____个叶子结点;若采用二叉链表作为存储结构,则该树中有__100___个空指针域。

(13)第5套选择第8题答案应为A:设连通图G中的边集E={(a,b),(a,e),(a,c),(b,e),(e,d),(d,f),(f,c)},则从顶点a出发可以得到一种深度优先遍历的顶点序列为(A) abedfc (14)第5套应用题第3题题目未指明查找方法,没法作 (15)第6套选择第5题应选B,实际是任意结点至多只有一个孩子:设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是(B) 高度等于其结点数 (16)第7套填空1题问题本身错,设指针变量p指向双向链表中的结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为____s->left_____=p;s->right=p->right;___p->right_______=s;s->right->left=s;(设结点中的两个指针域分别为left和right)。(17)第8套填空题第8题答案错 (18)第7套选择第3题题目错,应以60为基准关键字,答案为C.设一组初始记录关键字序列为(60,80,55,40,42,85),则以第一个关键字60为基准而得到的一趟快速排序结果是()。 (C) 42,40,55,60,80,85 (17)第6套填空9题.快速排序算法的空间复杂度平均情况下为_O(logn)_,最坏的情况下为_O(n)_。(18)第9套填空第3题,题目说循环队列有m个元素实际指循环队列总长为m,此外,该题关于队头和队尾指针的约定不同于教材 (19)第9套填空第4题答案错,9个元素冒泡排序,第一趟比较次数为8,最多8趟

数据结构试卷和答案

《数据结构》试题参考答案 (开卷) (电信系本科2001级 2002年12月) 一、回答下列问题 (每题4分,共36分) 1. 某完全二叉树共有15381个结点,请问其树叶有多少个? 答:n2=?n/2?=?15381/2?=7691(个) 2. 假设有二维数组A 7×9,每个元素用相邻的6个字节存储,存储器按字节编址。已知A 的起始存储位置(基地址)为1000,末尾元素A[6][8]的第一个字节地址为多少?若按列存储时,元素A[4][7]的第一个字节地址为多少? 答:① 末尾元素A[6][8]的第一个字节地址=1000+(7行×9列—1)×6B =1000+62×6=1372 ②按列存储时,元素A[4][7]的第一个字节地址=1000+(7列×7行+4)×6B =1000+53×6=1318 3. 在KMP 算法中,已知模式串为ADABBADADA ,请写出模式串的next[j]函数值。 答:根据 0 当j =1时 next[ j ]= max { k |1

数据结构期末考试题及标准答案

数据结构期末考试题及标准答案

————————————————————————————————作者:————————————————————————————————日期:

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构试题及答案

第一章概论 一、选择题 1、研究数据结构就是研究(D)。 A. 数据的逻辑结构?B。数据的存储结构 C。数据的逻辑结构和存储结构?D.数据的逻辑结构、存储结构及其基本操作(研究非数值计算的程序设计问题中,计算机操作对象以及他们之间的关系和操作) 2、算法分析的两个主要方面是(A)。 A.空间复杂度和时间复杂度???B。正确性和简单性 C。可读性和文档性D.数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。(线性结构就是:在非空有限集合中,存在为一个被称为第一个的数据元素和最后一个元素,有除了第一个元素,集合中每一个元素均只有一个前驱,除了最后一个元素有唯一后继)(链表、栈、队列、数组、串) A. 图B. 树??C.广义表(线性表的推广) D.栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A.可执行性、可移植性和可扩充性? B. 可执行性、有穷性和确定性 C。确定性、有穷性和稳定性??? D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 for(i=0;i

数据结构试题(含答案)

一.是非题 (正确的打“√”,错误的打“×”。) 1. 数据结构可用三元式表示(D,S,P)。其中:D是数据对象,S是D上的关系, P是对D的基本操作集。× 2. 线性表的链式存储结构具有可直接存取表中任一元素的优点。× 3. 字符串是数据对象特定的线性表。 4. 二叉树是一棵结点的度最大为二的树。× 5.邻接多重表可以用以表示无向图,也可用以表示有向图。× 6.可从任意有向图中得到关于所有顶点的拓扑次序。× 7.一棵无向连通图的生成树是其极大的连通子图。× 8.二叉排序树的查找长度至多为log2n。× 9.对于一棵m阶的B-树.树中每个结点至多有m 个关键字。除根之外的所有非终端结点至少有┌m/2┐个关键字。× 10.对于目前所知的排序方法,快速排序具有最好的平均性能。 11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。× 12. 二维数组是其数据元素为线性表的线性表。 13. 连通图G的生成树是一个包含G的所有n个顶点和n-1条边的子图。× 14. 折半查找不适用于有序链表的查找。 15. 完全二叉树必定是平衡二叉树。 16. 中序线索二叉树的优点是便于在中序下查找直接前驱结点和直接后继结点。 17. 队列是与线性表完全不同的一种数据结构。× 18. 平均查找长度与记录的查找概率有关。 19. 二叉树中每个结点有两个子结点,而对一般的树,则无此限制,所以,二叉树是树的特殊情形。× 20. 算法的时间复杂性越好,可读性就越差;反之,算法的可读性越好,则时间复杂性就越差。× 二.选择题 1. 若对编号为1,2,3的列车车厢依次通过扳道栈进行调度,不能得到 ( e ) 的序列。 a:1,2,3 b:1,3,2 c:2,1,3 d:2,3,1 e:3,1,2 f:3,2,1 2. 递归程序可借助于( b )转化为非递归程序。 a:线性表 b: 栈 c:队列 d:数组 3. 在下列数据结构中( c )具有先进先出(FIFO)特性, ( b )具有先进后出(FILO)特性。 a:线性表 b:栈 c:队列 d:广义表 4. 对字符串s=’data-structure’ 执行操作replace(s,substring(s,6,8),’bas’)

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构试卷B卷(含答案)

《数据结构》试卷B 一、填空题(每空1分,共15分) 1. 向量、栈和队列都是结构,可以在向量的位置插入和删除元素;对于栈 只能在插入和删除元素;对于队列只能在插入和删除元素。 2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为。不允许插入和删除 运算的一端称为。 3. 数据结构是一门研究非数值计算的程序设计问题中计算机的以及它们之间 的和运算等的学科。 4. 在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。 5. 在具有n个单元的循环队列中,队满时共有个元素。 6. 假设在有序线性表a[20]上进行折半查找,则比较一次查找成功的结点数为1;比较两次查 找成功的结点数为;比较四次查找成功的结点数为;平均查找长度为。 二、判断正误(判断下列概念的正确性,并作出简要的说明。)(每小题1分,共10分) ()1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。()2. 在表结构中最常用的是线性表,栈和队列不太常用。 ()3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 ()4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。()5.线性表的逻辑顺序与存储顺序总是一致的 ()6. 栈和队列是一种非线性数据结构。 ()7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。 ()8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。 ()9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。

2015年数据结构期末考试题及答案

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构试题(含答案)

数据结构试题(含答案) 1.数据逻辑结构包括线性结构、树形结构和图状结构三种类型,树形结构和图状结构合称非线性结构 2.数据的逻辑结构分为集合、线性结构、树形结构和图状结构 4种。 3.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有 1 个后续结点。 4.线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。 5.在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没. 6.数据结构的基本存储方法是顺序、链式、索引和散列存储。有后续结点,其余每个结点的后续结点可以任意多个。 7.衡量一个算法的优劣主要考虑正确性、可读性、健壮性和时间复杂度与空间复杂度。8.评估一个算法的优劣,通常从时间复杂度和空间复杂度两个方面考察。 9.算法的5个重要特性是有穷性、确定性、可行性、输入和输出。 10.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。 11.在单链表中,要删除某一指定的结点,必须找到该结点的前驱结点。 12.在双链表中,每个结点有两个指针域,一个指向前驱结点,另一个指向后继结点。13.在顺序表中插入或删除一个数据元素,需要平均移动 n 个数据元素,移动数据元素的个数与位置有关 14.当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表的元素是,应采用顺序存储结构 15.根据线性表的链式存储结构中每一个结点包含的指针个数,将线性链表分成单链表和双链表。 16.顺序存储结构是通过下标表示元素之间的关系的;链式存储结构是通过指针表示元素之间的关系的 17.带头结点的循环链表L中只有一个元素结点的条件是 L->next->next=L 18.栈是限定仅在表尾进行插入或删除操作的线性表,其运算遵循后进先出的原则。19.空串是零个字符的串,其长度等于零。空白串是由一个或多个空格字符组成的串,其长度等于其包含的空格个数。 20.组成串的数据元素只能是单个字符。 21.一个子串”str”在主串”datastructure”中的位置是 5 。 22.字符串中任意个连续字符构成的部分称为该串的子串。 23.二维数组M的每个元素是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则存放M至少需要 540个字节;M的第8列和第5行共占108个字节24.稀疏矩阵一般的压缩存储方法有两种,即三元组表和十字链表。 25.广义表((a),((b),c),(((d))))的长度是 3 ,深度是 4 。 26.在一棵二叉树中,度为零的结点的个数为n0,度为2 的结点的个数为n2,则有n0= n2+1 。 27.在有n个结点的二叉链表中,空链域的个数为__n+1__。 28.一棵有n个叶子结点的哈夫曼树共有__2n-1_个结点 29.深度为5的二叉树至多有 31 个结点。 30.若某二叉树有20个叶子结点,有30个结点仅有一个孩子,则该二叉树的总结点个数为69 。

数据结构考试题库含答案

数据结构习题集含答案 目录

选择题 第一章绪论 1.数据结构这门学科是针对什么问题而产生的(A ) A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题 C、数值计算与非数值计算的问题都针对 D、两者都不针对 2.数据结构这门学科的研究内容下面选项最准确的是(D ) A、研究数据对象和数据之间的关系 B、研究数据对象 C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作 3.某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那 么下面关于数据对象、数据元素、数据项描述正确的是(C ) A、某班级的学生成绩表是数据元素,90分是数据项 B、某班级的学生成绩表是数据对象,90分是数据元素 C、某班级的学生成绩表是数据对象,90分是数据项 D、某班级的学生成绩表是数据元素,90分是数据元素 4.*数据结构是指(A )。 A、数据元素的组织形式 B、数据类型 C、数据存储结构 D、数据定义 5.数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C )。 A、存储结构 B、逻辑结构 C、链式存储结构 D、顺序存储结构 6.算法分析的目的是(C ) A、找出数据的合理性 B、研究算法中的输入和输出关系 C、分析算法效率以求改进 D、分析算法的易懂性和文档型性

7.算法分析的主要方法(A )。 A、空间复杂度和时间复杂度 B、正确性和简明性 C、可读性和文档性 D、数据复杂性和程序复杂性 8.计算机内部处理的基本单元是(B ) A、数据 B、数据元素 C、数据项 D、数据库 9.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储 比顺序存储要(B )。 A、低 B、高 C、相同 D、不好说 10.算法的时间复杂度取决于( C ) A 、问题的规模B、待处理数据的初始状态 C、问题的规模和待处理数据的初始状态 D、不好说 11.数据结构既研究数据的逻辑结构,又研究物理结构,这种观点(B )。 A、正确 B、错误 C、前半句对,后半句错 D、前半句错,后半句对 12.在数据结构中,从逻辑上可以把数据结构分成( C ) A、动态结构和静态结构 B、紧凑结构和非紧凑结构 C、线性结构和非线性结构 D、内部结构和外部结构 13.线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( A ) 存储结构。 A、随机存取 B、顺序存取 C、索引存取 D、散列存取 14.*下列程序的时间复杂度是(A ) for (i=1; i<=n; ++i){ for (j=1; j<=n; ++j){ c [i][j]=0;

数据结构试题及答案

一、判断题: 1、线性表的逻辑顺序与物理顺序总是一致的。( ) 2、线性表的顺序存储表示优于链式存储表示。( ) 3、线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。( ) 4、二维数组是其数组元素为线性表的线性表。( ) 5、每种数据结构都应具备三种基本运算:插入、删除和搜索。( ) 6、数据结构概念包括数据之间的逻辑结构,数据在计算机中的存储方式和数据的运算三个 方面。( ) 7、线性表中的每个结点最多只有一个前驱和一个后继。() 8、线性的数据结构可以顺序存储,也可以链接存储。非线性的数据结构只能链接存储。() 9、栈和队列逻辑上都是线性表。() 10、单链表从任何一个结点出发,都能访问到所有结点() 11、删除二叉排序树中一个结点,再重新插入上去,一定能得到原来的二叉排序树。() 12、快速排序是排序算法中最快的一种。() 13、多维数组是向量的推广。() 14、一般树和二叉树的结点数目都可以为0。() 15、直接选择排序是一种不稳定的排序方法。() 16、98、对一个堆按层次遍历,不一定能得到一个有序序列。() 17、在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。() 18、折半搜索只适用与有序表,包括有序的顺序表和有序的链表。() 19、堆栈在数据中的存储原则是先进先出。() 20、队列在数据中的存储原则是后进先出。() 21、用相邻矩阵表示图所用的存储空间大小与图的边数成正比。() 22、哈夫曼树一定是满二叉树。() 23、程序是用计算机语言表述的算法。() 24、线性表的顺序存储结构是通过数据元素的存储地址直接反映数据元素的逻辑关系。() 25、用一组地址连续的存储单元存放的元素一定构成线性表。() 26、堆栈、队列和数组的逻辑结构都是线性表结构。() 27、给定一组权值,可以唯一构造出一棵哈夫曼树。() 28、只有在初始数据为逆序时,冒泡排序所执行的比较次数最多。()

数据结构试卷及答案压缩版

《数据结构》试卷及答案 1.算法分析的目的是( )。 A.找出数据结构的合理性 B.研究算法中输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 2.()是具有相同特性数据元素的集合,是数据的子集。 A.数据符号 B.数据对象 C.数据 D.数据结构 3.用链表表示线性表的优点是( )。 A.便于随机存取 B.花费的存储空间比顺序表少 C.便于插入与删除 D.数据元素的物理顺序与逻辑顺序相同 4.输入序列为(A,B,C,D)不可能的输出有()。 A.(A,B,C,D) B. (D,C,B,A) C. (A,C,D,B) D . (C,A,B,D) 5.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxSize为数组的最大长度,队满的条件是( )。 A. front=maxSize B. (rear+1)%maxSize=front C. rear=maxSize D. rear=front 6.设有串t='I am a good student ',那么Substr(t,6,6)=()。 A. student B. a good s C. good D. a good 7.设有一个对称矩阵A,采用压缩存储方式,以行序为主序存储a11为第一个元素,其存储地址为1,每个元素占一个地址空间,则a85地址为()。 A.23 B.33 C.18 D. 40 8.已知广义表LS=(A,(B,C,D),E)运用head和tail函数,取出LS中原子b的运算()。 A. Gethead(Gethead(LS)) B. Gettail(Gethead(LS)) C. Gethead(Gethead(Gettail(LS))) D. Gethead(Gettail(LS)) 9.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为( ) A. CDBGFEA B. CDBFGEA C. CDBAGFE D. BCDAGFE 10.下列存储形式中,( ) 不是树的存储形式。 A.双亲表示法 B.左子女右兄弟表示法 C.广义表表示法 D.顺序表示法 11.对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。这样的排序方法是( )。 A.直接选择排序 B.直接插入排序 C.快速排序 D.起泡排序 12.采用折半查找方法进行查找,数据文件应为(),且限于()。

相关文档