当前位置:文档之家› 数据结构第7章 图习题分解

数据结构第7章 图习题分解

数据结构第7章 图习题分解
数据结构第7章 图习题分解

第7章图

一、单项选择题

1.在一个无向图G中,所有顶点的度数之和等于所有边数之和的______倍。

A.l/2 B.1

C.2 D.4

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

A.l/2 B.1

C.2 D.4

3.一个具有n个顶点的无向图最多包含______条边。

A.n B.n+1

C.n-1 D.n(n-1)/2

4.一个具有n个顶点的无向完全图包含______条边。

A.n(n-l) B.n(n+l)

C.n(n-l)/2 D.n(n-l)/2

5.一个具有n个顶点的有向完全图包含______条边。

A.n(n-1) B.n(n+l)

C.n(n-l)/2 D.n(n+l)/2

6.对于具有n个顶点的图,若采用邻接矩阵表示,则该矩阵的大小为______。

A.n B.n×n

C.n-1 D.(n-l) ×(n-l)

7.无向图的邻接矩阵是一个______。

A.对称矩阵B.零矩阵

C.上三角矩阵D.对角矩阵

8.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则表头向量的大小为______。

A.n B.e

C.2n D.2e

9.对于一个具有n个顶点和e条边的无(有)向图,若采用邻接表表示,则所有顶点邻接表中的结点总数为______。

A.n B.e

C.2n D.2e

10.在有向图的邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。

A.入边B.出边

C.入边和出边D.不是入边也不是出边

11.在有向图的逆邻接表中,每个顶点邻接表链接着该顶点所有______邻接点。

A.入边B.出边

C.入边和出边D.不是人边也不是出边

12.如果从无向图的任一顶点出发进行一次深度优先搜索即可访问所有顶点,则该图一定是______。

A.完全图B.连通图

C.有回路D.一棵树

13.采用邻接表存储的图的深度优先遍历算法类似于二叉树的______算法。

A.先序遍历B.中序遍历

C.后序遍历 D.按层遍历

14.采用邻接表存储的图的广度优先遍历算法类似于二叉树的______算法。

A.先序遍历B.中序遍历

C.后序遍历 D.按层遍历

15.如果无向图G必须进行二次广度优先搜索才能访问其所有顶点,则下列说法中不正确的是______。

A.G肯定不是完全图B.G一定不是连通图

C.G中一定有回路D.G有二个连通分量

16.下列有关图遍历的说法不正确的是______。

A.连通图的深度优先搜索是一个递归过程

B.图的广度优先搜索中邻接点的寻找具有“先进先出”的特征

C.非连通图不能用深度优先搜索法

D.图的遍历要求每一顶点仅被访问一次

17.下列说法中不正确的是______。

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

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

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

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

18.一个有向图G的邻接表存储如下图7-1所示,现按深度优先搜索遍历,从顶点v1出发,所得到的顶点序列是______。

A.v1,v2,v3,v4,v5B.v1,v2,v3,v5,v4

C.v1,v2,v4,v5,v3D.v1,v2,v5,v3,v4

图7-1 一个有向图的邻接表

19.对图7-2所示的无向图,从顶点1开始进行深度优先遍历,可得到顶点访问序列______。

A.1,2,4,3,5,7,6 B.1,2,4,3,5,6,7

C.1,2,4,5,6,3,7 D.1,2,3,4,5,7,6

图7-2 一个无向图

20.对图7-2所示的无向图,从顶点1开始进行广度优先遍历,可得到顶点访问序列______。

A.1,3,2,4,5,6,7 B.1,2,4,3,5,6,7

C.1,2,3,4,5,7,6 D.2,5,1,4,7,3,6

21.一个无向连通图的生成树是含有该连通图的全部顶点的______。

A.极小连通子图B.极小子图

C.极大连通子图D.极大子图

22.设无向图G=(V, E) 和G’= (V’, E’),如果G’为G的生成树,则下列说法中不正确的是______。

A.G’为G的连通分量B.G’为G的无环子图

C.G’为G的子图D.G’为G的极小连通子图且V’=V 23.任意一个无向连通图______最小生成树。

A.只有一棵B.有一棵或多棵

C.一定有多棵D.可能不存在

24.对于含有n个顶点的带权连通图,它的最小生成树是指图中任意一个________。

A.由n-1条权值最小的边构成的子图。

B.由n-1条权值之和最小的边构成的子图。

C.由n-1条权值之和最小的边构成的连通子图。

D.由n个顶点构成的边的权值之和最小的生成树。

25.若一个有向图中的顶点不能排成一个拓扑序列,则可断定该有向图_______。

A.是个有根有向图B.是个强连通图

C.含有多个入度为0的顶点D.含有顶点数目大于1的强连通分量26.判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以用____。

A.求关键路径的方法 B.求最短路径的Dijkstra算法

C.广度优先遍历算法 D.深度优先遍历算法

27.求最短路径的Dijkstra算法的时间复杂度为______。

A.O(n) B.O(n+e)

C.O(n2) D.O(ne)

28.求最短路径的Floyd算法的时间复杂度为______。

A.O(n) B.O(ne)

C.O(n2) D.O(n3)

29.关键路径是事件结点网络中______。

A.从源点到汇点的最长路径B.从源点到汇点的最短路径

C.最长的回路D.最短的回路

30.下面说法不正确的是______。

A.在AOE网中,减少任一关键活动的权值后,整个工期也就相应减少B.AOE网工程工期为关键活动的权值和

C.在关键路径上的活动都是关键活动,而关键活动也必须在关键路径上D.A和B

31.下面说法不正确的是______。

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

B.任何一个关键活动提前完成,将使整个工程提前完成

C.所有关键活动都提前完成,则整个工程提前完成

D.某些关键活动若提前完成,将使整个工程提前完成

二、填空题

1.对于具有n个顶点的无向图G最多有_________条边。

2.对于具有n个顶点的强连通有向图G至少有_________条边。

3.对于具有n个顶点的有向图,每个顶点的度最大可达___________。

4.若无向图G的顶点度数最小值大于___________时,G至少有一条回路。5.对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表头向量的大小为___________,所有邻接表中的结点总数是__________。

6.已知一个有向图的邻接矩阵表示,删除所有从第i个结点出发的弧的方法是

____________。

7.对于n个顶点的无向图,采用邻接矩阵表示,求图中边数的方法是__________,判断任意两个顶点i和j是否有边相连的方法是__________,求任意一个顶点的度的方法是___________。

8.对于n个顶点的有向图,采用邻接矩阵表示,求图中边数的方法是_________,判断任意两个顶点i和j是否有边相连的方法是__________,求任意一个顶点的度的方法是__________。

9.无向图的连通分量是指___________。

10.已知图G的邻接表如图7-3所示,从顶点v1出发的深度优先搜索序列为

________,从顶点1出发的广度优先搜索序列为_____________。

图7-3 图G的邻接表

11.n个顶点连通图的生成树一定有__________条边。

12.一个连通图的___________是一个极小连通子图。

13.Prim算法适用于求_________的网的最小生成树,Kruskal算法适用于求________的网的最小生成树。

14.在AOV图中,顶点表示________,有向边表示________。

15.可以进行拓扑排序的有向图一定是_________。

16.从源点到汇点长度最长的路径称为关键路径,该路径上的活动称为________。17.Dijkstra算法从源点到其它各顶点的路径长度按________次序依次产生,该算法在边上的权出现_________情况时,不能正确产生最短路径。

18.求从某源点到其余各项点的Dijkstra算法在图的顶点数为10,用邻接矩阵表示图时计算时间约为10ms,则在图的顶点数为40时,计算时间约为

_________ms。

三、判断题

1.具有n个顶点的无向图至多有n(n-1)条边。

2.有向图中各顶点的入度之和等于各顶点的出度之和。

3.邻接矩阵只储存了边的信息,没有存储顶点的信息。

4.对同一个有向图,只保存出边的邻接表中结点的数目总是和只保存入边的邻接表中结点的数目一样多。

5.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。

6.如果表示有向图的邻接矩阵是对称矩阵,则该有向图一定是有向完全图。7.如果表示某个图的邻接矩阵不是对称矩阵,则该图一定是有向图。

8.连通分量是无向图的极小连通子图。

9.强连通分量是有向图的极大连通子图。

10.对有向图G,如果以任一顶点出发进行一次深度优先或广度优先搜索能访问到每一个顶点,则该图一定是完全图。

11.连通图的广度优先搜索中一般要采用队列来暂时刚访问过的顶点。

12.图的深度优先搜索中一般要采用栈来暂时刚访问过的顶点。

13.有向图的遍历不可采用广度优先搜索方法。

14.连通图的生成树包含了图中所有顶点。

15.设G为具有n个顶点的连通图,如果其中的某个子图有n个顶点,n-1条边,则该子图一定是G的生成树。

16.最小生成树是指边数最小的生成树。

17.从n个顶点的连通图中选取n-1条权值最小的边,即可构成最小生成树。18.只要无向网中没有权值相同的边,其最小生成树就是惟一的。

19.只要无向网中有权值相同的边,其最小生成树就可能不是惟一的。

20.有环图也能进行拓扑排序。

21.拓扑排序算法仅适用于有向无环图。

22.任何有向无环图的结点都可以排成拓扑排序,而且拓扑序列不惟一。23.关键路径是由权值最大的边构成的。

24.在AOE网中,减小任一关键活动上的权值后,整个工期也就相应减小。25.在AOE网中工程工期为关键活动上权值之和。

26.在关键路径的活动都是关键活动,而关键活动未必在关键路径上。

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

28.所有关键活动都提前完成,则整个工程将提前完成。

29.某些关键活动若提前完成,将可能使整个工程提前完成。

30.求单源最短路径的狄克斯特拉算法不适用于有回路的有向网。

四、简答题

1.图G是一个非连通无向图,共有28条边,则该图至少有多少个顶点?2.用邻接矩阵表示图时,矩阵元素的个数与顶点个数是否相关?与边的条数是

否有关?

3.对于稠密图和稀疏图,就存储而言,采用邻接矩阵和邻接表哪个更好些?4.请回答下列关于图的一些问题:

(1)有n个顶点的有向强连通图最多有多少条边?最少有多少条边?

(2)表示一个有1000个顶点,1000条边的有向图的邻接矩阵有多少个矩阵元素?是否为稀疏矩阵?

(3)对于一个有向图,不用拓扑排序,如何判断图是否存在环?

5.对n个顶点的无向图和有向图,采用邻接表表示时,如何判别下列有关问题?(1)图中有多少条边?

(2)任意两个顶点i和j是否有边相连?

(3)任意一个顶点的度是多少?

6.给出如图7-4所示的无向图G的邻接矩阵和邻接表两种存储结构。并在给定的邻接表基础上,指出从顶点1出发的深度优先遍历和广度优先遍历序列。

图7-4 一个无向图

7.对于图7-5所示的有向图,试给出:

(1)邻接矩阵。(2)邻接表(3)强连通分量

(4)对照邻接表,给出从顶点1出发的深度优先遍历序列。

(5)对照邻接表,给出从顶点3出发的深度优先遍历序列。

图7-5 一个有向图

8.什么样的图其最小生成树是惟一的?

9.已知带权连通图G(V ,E)邻接表如图7-6所示,请画出该图,并分别以深度优

先和广度优先遍历该图,写出遍历中结点的序列,并画出该图的一棵最小生成树,其中表结点的3个域各为:

1. 2. 3 4. 5

图7-6 连通图的邻接表

10.已知世界6大城市为:北京(B )纽约(N )巴黎(P )伦敦(L )东京(T )

墨西哥城(M )试用由表1给出的交通网确定最小生成树,并说明所使用的方法及其时间复杂度。

11.对于图7-7所示的带权有向图,采用狄克斯特拉算法求从顶点1到其它顶点

的最短路径,要求给出求解过程。

图7-7 一个有向图 图7-8一个有向图

12.设图7-8中的顶点表示村庄,有向边代表交通路线,若要建立一家医院,试

问建在哪个村庄能使个村庄总体交通代价最小。

13.表2所示给出了某工程各工序之间的优先关系和各工序所需的时间。

表2 某工程各工序关系表

工序代号 A B C D E F G H I J K L M N 所需时间 15 10 50 8 15 40 300 15 120 60 15 30 20 40 先驱工作 - - A,B B C,D B E G ,I E I F,I H,J,K L G 完成如下各小题:

(1)画出相应的AOE 网

(2)列出事件的最早发生时间,最迟发生时间。

(3)找出关键路径并指明完成该工程所需的最短时间。14.如图7-9所示的AOE网,求:

(1)每项活动a i最早开始时间e(a i)和最迟开始时间l(a i)。

(2)完成此工程最少需要多少天(设边上权值为天数)。

(3)哪些是关键活动

(4

图7-9

五、算法设计题

1.假设图G采用邻接表存储,分别设计实现以下要求的算法:(1)求出图G中每个顶点的入度。

(2)求出图G中每个顶点的出度

(3)求出图G中出度最大的一个顶点,输出该顶点的编号。

(4)计算图G中出度为0的顶点数。

(5)判断图G中是否存在边

2.假设图G采用邻接矩阵存储,分别设计实现以下要求的算法:(1)求出图G中每个顶点的入度。

(2)求出图G中每个顶点的出度

(3)求出图G中出度最大的一个顶点,输出该顶点的编号。

(4)计算图G中出度为0的顶点数。

(5)判断图G中是否存在边

3.设计一个将邻接表转换为邻接矩阵的算法。

4.一个连通图采用邻接表作为存储机构,设计一个算法实现从顶点v出发的深度优先遍历的非递归过程。

5.设计一个算法,求不带权无向连通图G中距离顶点v的最远顶点。

6.设计一个算法,判断无向图G是否是一棵树,若是树,返回1;否则返回0。7.假设图采用邻接表存储,分别写出基于DFS和BPS遍历的算法来判别顶点i 和顶点j(i!=j)之间是否有路径。

8.假设图G采用邻接表存储,设计一个算法,判断无向图G是否连通,若连通则返回1;否则返回0。

9.假设图G采用邻接表存储,设计一个算法,输出图G中从顶点u到v的长度为1的所有简单路径。

10.假设图G采用邻接表存储,设计一个算法,输出图G中从顶点u到v的所有简单路径。

11.假设图G采用邻接表存储,设计一个算法,从如图7-10所示的无向图G中找出满足如下条件的一条路径:

(1)给定起点vi和终点vj。

(2)给定一组必经点{7,9},即输出的路径必须包含这些顶点。

(3)给定一组必避点{1,6},即输出的路径不能包含这些顶点。

图7-10

12.假设图G采用邻接矩阵存储,采用遍历方法实际一个有向图的根的算法。

若有向图中存在一个顶点v,从v可以通过路径达达图中其它所有顶点,则称v为该有向图的根。

13.假设图G采用邻接矩阵存储,设计一个算法判断在给定的有向图中是否存在一个简单有向回路,若存在,则以顶点序列的方法输出该回路(找到一条即可)。

14.采用堆排序来实现Kruskal算法,并说明时间复杂度O(elog2e)的理由。15.如图7-11是一个城市连接图,图中权值表示两城市之间的里程(单位为100km),现要设计一条铁路贯通所有城市(即从一个任一城市可以到达其他城市)。设计一个算法,求出最小代价。假设每1km的铁路造价为1000万元。

图7-11 城市连通图

16.利用狄克斯特拉算法,设计一个可产生从指定顶点出发的最小生成树的算法。17.设计一个算法求图的中心点。设v是有向图G的一个顶点,把v的偏心度定义为:MAX{从w到v的最短距离|wV(G)}如果v是有向图G中具有最小偏心度的顶点,则称顶点v是G的中心点。

18.假设图G采用邻接矩阵存储,采用弗洛伊德算法设计一个求有向图的根的算法。若有向图中存在一个顶点v,从v可以通过路径到达图中其他所有顶点,则称v为该有向图的根。

19.设计一个算法,判断有向图是否存在回路。

20.对于一个使用邻接表存储的带权有向图G。试利用深度优先搜索方法,对该图中所有顶点进行逆向拓扑排序。若邻接表的数据类型定义为AGraph,则算法的首部为:void dfs_topsort(AGraph *G) 若拓扑排序成功,表示图中不存在环;否则表示图中存在环。在这个算法中嵌套一个递归深度优先搜索算法为:Dfs(AGaph G , int v)在遍历图的同时进行逆序拓扑排序,其中,v 是顶点编号。

(1)给出该图的邻接表定义

(2)定义在算法中使用的全局辅助数组

(3)写出逆向拓扑排序的算法。

21.假设AOE网以邻接表方式存储,设计一个算法求该AOE网的所有关键活动。

数据结构第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)图中连通分量的数目

经典数据结构面试题(含答案)

栈和队列的共同特点是__________________________ .栈通常采用的两种存储结构是______________________ .用链表表示线性表的优点是_______________________ 8.在单链表中,增加头结点的目的是___________________ 9.循环链表的主要优点是________________________- 12.线性表的顺序存储结构和线性表的链式存储结构分别是 __________________________ 13.树是结点的集合,它的根结点数目是_____________________ 14.在深度为5的满二叉树中,叶子结点的个数为_______________ 15.具有3个结点的二叉树有(_____________________ 16.设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为____________________ 17.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是 ____________________________ 18.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为______________________ 19.若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbaechf,则其后序遍历的结点访问顺序是_______________________ 20.数据库保护分为:安全性控制、完整性控制、并发性控制和数据的恢复。 在计算机中,算法是指_______________________ 算法一般都可以用哪几种控制结构组合而成_____________________ .算法的时间复杂度是指______________________ 5. 算法的空间复杂度是指__________________________ 6. 算法分析的目的是__________________________

数据结构第五章习题课课案

1、特殊矩阵和稀疏矩阵哪一种压缩存储后会失去随机存取的功能?为什么? 答:后者在采用压缩存储后将会失去随机存储的功能。因为在这种矩阵中,非 零元素的分布是没有规律的,为了压缩存储,就将每一个非零元素的值和它所 在的行、列号作为一个结点存放在一起,这样的结点组成的线性表中叫三元组 表,它已不是简单的向量,所以无法用下标直接存取矩阵中的元素。 2、二维数组M的元素是4个字符(每个字符占一个存储单元)组成的串,行下 标i的范围从0到4,列下标j的范围从0到5,M按行存储时元素M[3][5]的 起始地址与M按列存储时元素()的起始地址相同。 A、M[2][4] B、M[3][4] C、M[3][5] D、M[4][4] 为第 3、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a 11 的地址为()。 一元素,其存储地址为1,每个元素占一个地址空间,则a 85 A. 13 B. 33 C. 18 D. 40 4、若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线 (i

数据结构作业系统第七章答案

7.22③试基于图的深度优先搜索策略写一算法,判别以邻接表方式存储的有向图中是否存在由顶点vi到顶点vj的路径(i≠j)。注意:算法中涉及的图的基本操作必须在此存储结构上实现。 实现下列函数: Status DfsReachable(ALGraph g, int i, int j); /* Judge if it exists a path from vertex 'i' to */ /* vertex 'j' in digraph 'g'. */ /* Array 'visited[]' has been initialed to 'false'.*/ 图的邻接表以及相关类型和辅助变量定义如下:Status visited[MAX_VERTEX_NUM]; typedef char VertexType; typedef struct ArcNode { int adjvex; struct ArcNode *nextarc; } ArcNode; typedef struct VNode { V ertexType data; ArcNode *firstarc; } VNode, AdjList[MAX_VERTEX_NUM]; typedef struct { AdjList vertices; int vexnum, arcnum; } ALGraph; Status DfsReachable(ALGraph g, int i, int j) /* Judge if it exists a path from vertex 'i' to */ /* vertex 'j' in digraph 'g'. */ /* Array 'visited[]' has been initialed to 'false'.*/ { int k; ArcNode *p; visited[i]=1; for(p=g.vertices[i].firstarc;p;p=p->nextarc) { if(p) { k=p->adjvex; if(k==j)return 1; if(visited[k]!=1)

数据结构模拟卷(含答案)经典习题培训讲学

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位10. 下列图示的顺序存储结构表示的二叉树是( )

数据结构习题课第8、7、6章(网上的答案有些有问题的)

第8章图 8.2对于如图8.33所示的无向图,试给出: (1)图中每个顶点的度; (2)该图的邻接矩阵; (3)该图的邻接表; (4)该图的连通分量。 (1)D(V0)=2;D(V1)=2;D(V2)=3;D(V3)=3;D(V4)=2;D(V5)=1;D(V6)=1. 0101000 0101000 1010000 1010000 0101100 0101100 1010100 (2)1010100 邻接矩阵 0011000 0011000 0000001 0000001 0000010 0000010 vV (3)邻接表

(4)连通分量 1: 2: 8.3图8.35所示的是某个无向图的邻接表,试:(1)画出此图; (2)写出从顶点A开始的DFS遍历结果; (3)写出从顶点A开始的BFS遍历结果。 (1)图8.35邻接表对应的无向图如图8.35.1所示

(2) 从顶点A 开始的D F S 遍历,深度优先遍历的基本思想:定的图 G=(V,E ),首先将V 中每一个顶点都标记为未被访问,然后,选取一个源点vV 将v 标记为被访问,再递归地用深度优方法,依v 的所有邻接点 w .若w 未曾访问过w 为新的出发点继续深度优遍历,如果从v 出发 所有路的顶点都已被访问过,则结束。A ,B ,C ,F ,E ,G ,D 从顶点A 开始的B F S 遍历,基本思想:定的图G=(V,E ),从图中某未访 问过的顶点vi 出发: 1)访问顶点vi ; 2)访问vi 的所有未被访问的邻接点w1,w2,?wk ; 3)依次从这些邻接点出发,访问它们的所有未被访问的邻接点;依此类推,直 到图中所有访问过的顶点的邻接点都被访问; A ,B ,C ,D ,F ,E ,G 8.4对如图8.36所示的连通图,分别用P rim 和Kruskal 算法构造其最小生成 树。 解:(1)Prime 算法的基本思路、步骤P167 Prim 算法的基本步骤如下:(1)初始化:U={u0},TREE={}; (2)如果U=V (G ),则输出最小生成树T ,并结束算法; (3)在所有两栖边中找一条权最小的边(u ,v )(若候选两栖边中的最小边不止 一条,可任选其中的一条),将边(u ,v )加入到边集TREE 中,并将顶点v 并入 集合U 中。 (4)由于新顶点的加入,U 的状态发生变化,需要对U 与V-U 之间的两栖边进 行调整。 (5)转步骤(2)

数据结构课后习题及解析第二章

第二章习题 1.描述以下三个概念的区别:头指针,头结点,首元素结点。 2.填空: (1)在顺序表中插入或删除一个元素,需要平均移动元素,具体移动的元素个数与有关。 (2)在顺序表中,逻辑上相邻的元素,其物理位置相邻。在单链表中,逻辑上相邻的元素,其物理位置相邻。 (3)在带头结点的非空单链表中,头结点的存储位置由指示,首元素结点的存储位置由指示,除首元素结点外,其它任一元素结点的存储位置由指示。3.已知L是无表头结点的单链表,且P结点既不是首元素结点,也不是尾元素结点。按要求从下列语句中选择合适的语句序列。 a. 在P结点后插入S结点的语句序列是:。 b. 在P结点前插入S结点的语句序列是:。 c. 在表首插入S结点的语句序列是:。 d. 在表尾插入S结点的语句序列是:。 供选择的语句有: (1)P->next=S; (2)P->next= P->next->next; (3)P->next= S->next; (4)S->next= P->next; (5)S->next= L; (6)S->next= NULL; (7)Q= P; (8)while(P->next!=Q) P=P->next; (9)while(P->next!=NULL) P=P->next; (10)P= Q; (11)P= L; (12)L= S; (13)L= P; 4.设线性表存于a(1:arrsize)的前elenum个分量中且递增有序。试写一算法,将X插入到线性表的适当位置上,以保持线性表的有序性。 5.写一算法,从顺序表中删除自第i个元素开始的k个元素。 6.已知线性表中的元素(整数)以值递增有序排列,并以单链表作存储结构。试写一高效算法,删除表中所有大于mink且小于maxk的元素(若表中存在这样的元素),分析你的算法的时间复杂度(注意:mink和maxk是给定的两个参变量,它们的值为任意的整数)。 7.试分别以不同的存储结构实现线性表的就地逆置算法,即在原表的存储空间将线性表(a1, a2..., an)逆置为(an, an-1,..., a1)。 (1)以一维数组作存储结构,设线性表存于a(1:arrsize)的前elenum个分量中。 (2)以单链表作存储结构。 8.假设两个按元素值递增有序排列的线性表A和B,均以单链表作为存储结构,请编写算法,将A表和B表归并成一个按元素值递减有序排列的线性表C,并要求利用原表(即A 表和B表的)结点空间存放表C。

数据结构模拟卷(含答案)经典习题

练习题 一、单项选择题 1. 若将数据结构形式定义为二元组(K,R),其中K是数据元素的有限集合,则R是K上( ) A. 操作的有限集合 B. 映象的有限集合 C. 类型的有限集合 D. 关系的有限集合 2. 在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( ) A. n-i+1 B. i C. i+1 D. n-i 3. 若不带头结点的单链表的指针为head,则该链表为空的判定条件是( ) A. head==NULL B. head->next==NULL C. head!=NULL D. head->next==head 4. 引起循环队列队头位置发生变化的操作是( ) A. 出队 B. 入队 C. 取队头元素 D. 取队尾元素 5. 若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不.可能出现的出栈序列是( ) A. 2,4,3,1,5,6 B. 3,2,4,1,6,5 C. 4,3,2,1,5,6 D. 2,3,5,1,6,4 1

6. 字符串通常采用的两种存储方式是( ) A. 散列存储和索引存储 B. 索引存储和链式存储 C. 顺序存储和链式存储 D. 散列存储和顺序存储 7. 数据结构是() A.一种数据类型 B.数据的存储结构 C.一组性质相同的数据元素的集合 D.相互之间存在一种或多种特定关系的数据元素的集合 8. 算法分析的目的是() A.辨别数据结构的合理性 B.评价算法的效率 C.研究算法中输入与输出的关系 D.鉴别算法的可读性 9. 在线性表的下列运算中,不.改变数据元素之间结构关系的运算是 () A.插入B.删除 C.排序D.定位 10. 下列图示的顺序存储结构表示的二叉树是( ) 2

数据结构第七章图练习及答案

1.拓扑排序的结果不是唯一的,试写出下图任意2个不同的拓扑序列。 2.写出求以下AOE网的关键路径的过程。要求:给出每一个事件和每一个活动的最早开始时间和最晚开始时间。 【解析】解题关键是弄清拓扑排序的步骤 (1)在AOV网中,选一个没有前驱的结点且输出;(2)删除该顶点和以它为尾的弧;(3)重复上述步骤直至全部顶点均输出或不再有无前驱的顶点。 【答案】(1)0132465 (2)0123465 【解析】求关键路径首先求关键活动,关键活动ai的求解过程如下 (1)求事件的最早发生时间ve(j), 最晚发生时间vl(j); (2)最早发生时间从ve(0)开始按拓扑排序向前递推到ve(6), 最晚发生时间从vl(6)按逆拓扑排序向后递推到vl(0); (3)计算e(i),l(i):设ai由弧表示,持续时间记为dut,则有下式成立 e(i)=ve(j) l(i)=vl(k)-dut() (4)找出e(i)-l(i)=0的活动既是关键活动。 【答案】

关键路径为:a0->a4->a6->a9 7.1选择题 1.对于一个具有n个顶点和e条边的有向图,在用邻接表表示图时,拓扑排序算法时间复杂度为(B) A)O(n) B)O(n+e) C)O(n*n) D)O(n*n*n) 2.设无向图的顶点个数为n,则该图最多有(B)条边。 A)n-1 B)n(n-1)/2 C)n(n+1)/2 D)n2 3.连通分量指的是(B) A)无向图中的极小连通子图 B)无向图中的极大连通子图 C)有向图中的极小连通子图 D)有向图中的极大连通子图 4.n个结点的完全有向图含有边的数目(D) A)n*n B)n(n+1) C)n/2 D)n*(n-1) 5.关键路径是(A) A)AOE网中从源点到汇点的最长路径 B)AOE网中从源点到汇点的最短路径 C)AOV网中从源点到汇点的最长路径 D)AOV网中从源点到汇点的最短路径 6.有向图中一个顶点的度是该顶点的(C) A)入度B)出度C)入度与出度之和D)(入度+出度)/2 7.有e条边的无向图,若用邻接表存储,表中有(B)边结点。 A) e B)2e C)e-1 D)2(e-1) 8.实现图的广度优先搜索算法需使用的辅助数据结构为(B)

经典数据结构上机题_答案解析

数据结构上机实验题目 实验一线性表的顺序存储结构 实验学时 2学时 背景知识:顺序表的插入、删除及应用。 目的要求: 1.掌握顺序存储结构的特点。 2.掌握顺序存储结构的常见算法。 实验容 1.输入一组整型元素序列,建立顺序表。 2.实现该顺序表的遍历。 3.在该顺序表中进行顺序查找某一元素,查找成功返回1,否则返回0。4.判断该顺序表中元素是否对称,对称返回1,否则返回0。 5.实现把该表中所有奇数排在偶数之前,即表的前面为奇数,后面为偶数。 6.输入整型元素序列利用有序表插入算法建立一个有序表。 7.利用算法6建立两个非递减有序表并把它们合并成一个非递减有序表。 8. 利用该顺序结构实现循环队列的入队、出队操作。 8.编写一个主函数,调试上述算法。 #include #include

#define OVERFLOW 0 #define MAXSIZE 100 typedef int ElemType; typedef struct list {ElemType elem[MAXSIZE]; int length; }Sqlist; void Creatlist(Sqlist &L) {int i; printf("请输入顺序表的长度:"); //输入一组整型元素序列,建立一个顺序表。 scanf("%d",&L.length); for(i=0;i

数据结构例题解析(1)

I Single Choice(10 points) 1. ( a )For the following program fragment the running time(Big-Oh) is . i = 0; s = 0; while(s <( 5*n*n + 2)) { i++; s = s + i; } a. O(n) b. O(n2) c. O(n1/2) d. O(n3) 2. ( c )Which is non-linear data structure_____. a. queue c. tree d. sequence list 3.( b )The worst-time for removing an element from a sequence list (Big-Oh) is . a. O(1) b. O(n) c. O(n2) d. O(n3) 4.( d )In a circular queue we can distinguish(区分) empty queues from full queues by .

a. using a gap in the array b. incrementing queue positions by 2 instead of 1 a count of the number of elements d. a and c 5.( b )A recursive function can cause an infinite sequence of function calls if . a.the problem size is halved at each step b.the termination condition is missing c.no useful incremental computation is done in each step d.the problem size is positive 6.( c )The full binary tree with height 4 has nodes. a. 15 b. 16 7. ( b )Searching in an unsorted list can be made faster by using . a.binary search

数据结构习题汇编07第七章图试题

第七章图试题 一、单项选择题 1.在无向图中定义顶点的度为与它相关联的()的数目。 A. 顶点 B. 边 C. 权 D. 权值 2.在无向图中定义顶点 v i与v j之间的路径为从v i到达v j的一个()。 A. 顶点序列 B. 边序列 C. 权值总和 D. 边的条数 3.图的简单路径是指()不重复的路径。 A. 权值 B. 顶点 C. 边 D. 边与顶点均 4.设无向图的顶点个数为n,则该图最多有()条边。 A. n-1 B. n(n-1)/2 C. n(n+1)/2 D. n(n-1) 5.n个顶点的连通图至少有()条边。 A. n-1 B. n C. n+1 D. 0 6.在一个无向图中,所有顶点的度数之和等于所有边数的 ( ) 倍。 A. 3 B. 2 C. 1 D. 1/2 7.若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个 ( )。 A. 上三角矩阵 B. 稀疏矩阵 C. 对角矩阵 D. 对称矩阵 8.图的深度优先搜索类似于树的()次序遍历。 A. 先根 B. 中根 C. 后根 D. 层次 9.图的广度优先搜索类似于树的()次序遍历。 A. 先根 B. 中根 C. 后根 D. 层次 10.在用Kruskal算法求解带权连通图的最小(代价)生成树时,通常采用一个()辅助结构, 判断一条边的两个端点是否在同一个连通分量上。 A. 位向量 B. 堆 C. 并查集 D. 生成树顶点集合 11.在用Kruskal算法求解带权连通图的最小(代价)生成树时,选择权值最小的边的原则是该边不能 在图中构成()。 A. 重边 B. 有向环 C. 回路 D. 权值重复的边 12.在用Dijkstra算法求解带权有向图的最短路径问题时,要求图中每条边所带的权值必须是 ()。 A. 非零 B. 非整 C. 非负 D. 非正 13.在一个连通图中进行深度优先搜索得到一棵深度优先生成树,树根结点是关节点的充要条件是它至少 有()子女。

数据结构经典题目c语言代码

《数据结构》课程设计题目 (程序实现采用C语言) 题目1:猴子选王(学时:3) 一堆猴子都有编号,编号是1,2,3 ...m,这群猴子(m个)按照1-m的顺序围坐一圈,从第1开始数,每数到第n个,该猴子就要离开此圈,这样依次下来,直到圈中只剩下最后一只猴子,则该猴子为大王。 要求:m及n要求从键盘输入,存储方式采用向量及链表两种方式实现该问题求解。 //链表 #include #include // 链表节点 typedef struct _RingNode { int pos; struct _RingNode *next; }RingNode, *RingNodePtr; // 创建约瑟夫环,pHead:链表头指针,count:链表元素个数 void CreateRing(RingNodePtr pHead, int count) { RingNodePtr pCurr = NULL, pPrev = NULL; int i = 1; pPrev = pHead; while(--count > 0)

{ pCurr = (RingNodePtr)malloc(sizeof(RingNode)); i++; pCurr->pos = i; pPrev->next = pCurr; pPrev = pCurr; } pCurr->next = pHead; // 构成环状链表 } void KickFromRing(RingNodePtr pHead, int n) { RingNodePtr pCurr, pPrev; int i = 1; // 计数 pCurr = pPrev = pHead; while(pCurr != NULL) { if (i == n) { // 踢出环 printf("\n%d", pCurr->pos); // 显示出圈循序 pPrev->next = pCurr->next; free(pCurr); pCurr = pPrev->next; i = 1; } pPrev = pCurr;

严蔚敏版数据结构课后习题答案-完整版

第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。 存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。 抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解: ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C)

数据结构第一章课后习题与答案

第 1 章 绪 论 (2005-07-14) - 第 1 章 绪 论 课后习题讲解 1. 填空 ⑴( )是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 【解答】数据元素 ⑵( )是数据的最小单位,( )是讨论数据结构时涉及的最小数据单位。 【解答】数据项,数据元素 【分析】数据结构指的是数据元素以及数据元素之间的关系。 ⑶ 从逻辑关系上讲,数据结构主要分为( )、( )、( )和( )。 【解答】集合,线性结构,树结构,图结构 ⑷ 数据的存储结构主要有( )和( )两种基本方法,不论哪种存储结构,都要存储两方面的内容:( )和()。 【解答】顺序存储结构,链接存储结构,数据元素,数据元素之间的关系 ⑸ 算法具有五个特性,分别是( )、( )、( )、( )、( )。 【解答】有零个或多个输入,有一个或多个输出,有穷性,确定性,可行性 ⑹ 算法的描述方法通常有( )、( )、( )和( )四种,其中,( )被称为算法语言。 【解答】自然语言,程序设计语言,流程图,伪代码,伪代码 ⑺ 在一般情况下,一个算法的时间复杂度是( )的函数。 【解答】问题规模 ⑻ 设待处理问题的规模为n,若一个算法的时间复杂度为一个常数,则表示成数量级的形式为( ),若为 n*log25n,则表示成数量级的形式为( )。 【解答】Ο(1),Ο(nlog2n) 【分析】用大O记号表示算法的时间复杂度,需要将低次幂去掉,将最高次幂的系数去掉。

2. 选择题 ⑴ 顺序存储结构中数据元素之间的逻辑关系是由( )表示的,链接存储结构中的数据元素之间的逻辑关系是由( )表示的。 A 线性结构 B 非线性结构 C 存储位置 D 指针 【解答】C,D 【分析】顺序存储结构就是用一维数组存储数据结构中的数据元素,其逻辑关系由存储位置(即元素在数组中的下标)表示;链接存储结构中一个数据元素对应链表中的一个结点,元素之间的逻辑关系由结点中的指针表示。 ⑵ 假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产;子女可以继承父亲或母亲的遗产;子女间不能相互继承。则表示该遗产继承关系的最合适的数据结构应该是( )。 A 树 B 图 C 线性表 D 集合 【解答】B 【分析】将丈夫、妻子和子女分别作为数据元素,根据题意画出逻辑结构图。 ⑶ 算法指的是( )。 A 对特定问题求解步骤的一种描述,是指令的有限序列。 B 计算机程序 C 解决问题的计算方法 D 数据处理 【解答】A 【分析】计算机程序是对算法的具体实现;简单地说,算法是解决问题的方法;数据处理是通过算法完成的。所以,只有A是算法的准确定义。 ⑷ 下面( )不是算法所必须具备的特性。 A 有穷性 B 确切性 C 高效性 D 可行性 【解答】C 【分析】高效性是好算法应具备的特性。 ⑸ 算法分析的目的是( ),算法分析的两个主要方面是( )。 A 找出数据结构的合理性 B 研究算法中输入和输出的关系 C 分析算法的效率以求改进 D 分析算法的易读性和文档性 E 空间性能和时间性能 F 正确性和简明性 G 可读性和文档性 H 数据复杂性和程序复杂性

数据结构经典例题

数据结构经典例题 1.设计一个算法将L拆分成两个带头节点的单链表L1和L2。 void split(LinkList *&L,LinkList *&L1,LinkList *&L2) { LinkList *p=L->next,*q,*r1; //p指向第1个数据节点 L1=L; //L1利用原来L的头节点 r1=L1; //r1始终指向L1的尾节点 L2=(LinkList *)malloc(sizeof(LinkList));//创建L2的头节点 L2->next=NULL; //置L2的指针域为NULL while (p!=NULL) { r1->next=p; //采用尾插法将*p(data值为ai)插入L1中 r1=p; p=p->next; //p移向下一个节点(data值为bi) q=p->next; //由于头插法修改p的next域,故用q保存*p的后继节点 p->next=L2->next; //采用头插法将*p插入L2中 L2->next=p; p=q; //p重新指向ai+1的节点 } r1->next=NULL; //尾节点next置空 } 2.查找链表中倒数第k个位置上的节点(k为正整数)。若查找成功,算法输出该节点的data域的值,并返回1;否则,只返回0。 typedef struct LNode {int data; struct LNode *link; } *LinkList; int Searchk(LinkList list,int k) { LinkList p,q; int count=0; p=q=list->link; while (p!=NULL) { if (countlink; p=p->link; } if (count

数据结构第7章习题答案

第7章 《图》习题参考答案 一、单选题(每题1分,共16分) ( C )1. 在一个图中,所有顶点的度数之和等于图的边数的 倍。 A .1/2 B. 1 C. 2 D. 4 ( B )2. 在一个有向图中,所有顶点的入度之和等于所有顶点的出度之和的 倍。 A .1/2 B. 1 C. 2 D. 4 ( B )3. 有8个结点的无向图最多有 条边。 A .14 B. 28 C. 56 D. 112 ( C )4. 有8个结点的无向连通图最少有 条边。 A .5 B. 6 C. 7 D. 8 ( C )5. 有8个结点的有向完全图有 条边。 A .14 B. 28 C. 56 D. 112 ( B )6. 用邻接表表示图进行广度优先遍历时,通常是采用 来实现算法的。 A .栈 B. 队列 C. 树 D. 图 ( A )7. 用邻接表表示图进行深度优先遍历时,通常是采用 来实现算法的。 A .栈 B. 队列 C. 树 D. 图 ( C )8. 已知图的邻接矩阵,根据算法思想,则从顶点0出发按深度优先遍历的结点序列是 ( D )9. 已知图的邻接矩阵同上题8,根据算法,则从顶点0出发,按深度优先遍历的结点序列是 A . 0 2 4 3 1 5 6 B. 0 1 3 5 6 4 2 C. 0 4 2 3 1 6 5 D. 0 1 2 34 6 5 ( D )10. 已知图的邻接表如下所示,根据算法,则从顶点0出发按深度优先遍历的结点序列是 ( A )11. 已知图的邻接表如下所示,根据算法,则从顶点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 ??? ? ?? ? ? ? ? ? ???????????0100011101100001011010110011001000110010011011110A .0 1 3 2 B. 0 2 3 1 C. 0 3 2 1 D. 0 1 2 3

数据结构典型例题

基本概念典型例题 一、单项选择题 [例6-1]数据结构用集合的观点可以表示为一个二元组DS=(D,R)。其中,D是( ①)的有穷集合,R是D上( ②)的有限集合。 ①A.算法B. 数据元素C. 数据操作D. 逻辑结构 ②A. 操作B. 映像C. 存储D.关系 解析:由数据结构的集合形式化定义可知,本题答案为:①B;②D。 [例6-2]数据的常用存储结构中不包括( )。 A.顺序存储结构B.线性结构C.索引存储结构D.散列存储结构 解析:数据通常有四种基本的存储方法,即顺序存储方法、链式存储方法、索引存储 方法和散列存储方法。由此可知,本题答案为:B。 [例6-3] 算法指的是( ①),它必须具备( ②)这三个特性。 ①A.计算方法B.排序方法C.解决问题的步骤序列D.调度方法 ②A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性 C.确定性、有穷性、稳定性D.易读性、稳定性、安全性 解析:算法是对特定问题求解步骤的一种描述,是由若于条指令组成的有限序列。它 必须满足以下性质:输人性、输出性、有穷性、确定性、无二义性和可行性。由此可知,本 题答案为:①㈠②B。 [例6-4] 在下面的程序段中,对x的赋值语句的执行频度为( )。 for(i=0;i

数据结构课程__课后习题答案

C.分析算法的效率以求改进 答:C D.分析算法的易懂性和文档性 (5)计算机算法指的是 ()。 答:C 答:B 2. 填空题 答:①逻辑结构 ②存储结构 ③运算 数据结构简明教程》练习题及参考答案 练习题1 1.单项选择题 (1)线性结构中数据元素之间是 ()关系。 A. 一对多 B.多对多 C.多对一 答:D D.—对一 (2)数据结构中与所使用的计算机无关的是数据 的 A.存储 B.物理 答:C C ?逻辑 ()结构。 D.物理和存储 (3)算法分析的目的是 ( A.找出数据结构的合理性 )。 B.研究算法中的输入和输出的关系 (4)算法分析的两个主要方面 是 )。 A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 答:A D.数据复杂性和程序复杂性 A.计算方法 B.排序方法 C ?求解问题的有限运算序列 D.调度方法 (6)计算机算法必须具备输入 A. 可行性、可移植性和可扩充性 、输出和()等5个特性。 B. 可行性、确定性和有穷性 C.确定性、有穷性和稳定性 D.易读性、稳定性和安全性 (1)数据结构包括数据的 卫 、数据的 ② 和数据的 ③ 这三个方面的内容。

数据结构简明教程 (2)数据结构按逻辑结构可分为两大类,它们分别是 ①和②。 答:①线性结构②非线性结构 (3)数据结构被形式地定义为(D,R),其中D是① 的有限集合,R是D上的止有限集合。 答:①数据元素②关系 (4)在线性结构中,第一个结点①前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点②后继结点,其余每个结点有且只有1个后继结点。 答:①没有②没有 (5)在树形结构中,树根结点没有①结点,其余每个结点有且只有②个前驱结 点;叶子结点没有③结点,其余每个结点的后继结点数可以是④。 答:①前驱②1③后继④任意多个 (6)在图形结构中,每个结点的前驱结点数和后继结点数可以是 ()。 答:任意多个 (7)数据的存储结构主要有四种,它们分别是①、②、③和④存储结构。答:①顺序②链 式③索引④哈希 (8)一个算法的效率可分为① 效率和② 效率。 答:①时间②空间 3. 简答题 (1)数据结构和数据类型两个概念之间有区别吗? 答:简单地说,数据结构定义了一组按某些关系结合在一起的数组元素的集合。数据类型不仅定义了一组数据元素,而且还在其上定义了一组操作。 (2)简述线性结构、树形结构和图形结构的不同点。 答:线性结构反映结点间的逻辑关系是一对一的,树形线性结构反映结点间的逻辑关系是一对多的,图在结构反映结点间的逻辑关系是多对多的。 (3 )设有采用二元组表示的数据逻辑结构S=(D,R),其中D={ a,b, ?★}, R={(a,b),(a,c),(c,d),(c,f),(f,h),(d,e),(f,g),(h,i)},问相对于关系R,哪些结点是开始结点,哪些结点是终端结点? 答:该逻辑结构为树形结构,其中a结点没有前驱结点,称为根结点,b、e、g、i结点没有后继结点,是终端结点,也称为叶子结点。 (4) 以下各函数是算法中语句的执行频度,n为

相关主题
文本预览
相关文档 最新文档