当前位置:文档之家› 数据结构图练习题(附答案)

数据结构图练习题(附答案)

数据结构图练习题(附答案)
数据结构图练习题(附答案)

第七章 图

一、选择题

1.图中有关路径的定义是( )。【北方交通大学 2001 一、24 (2分)】

A .由顶点和相邻顶点序偶构成的边所形成的序列

B .由不同顶点所形成的序列

C .由不同边所形成的序列

D .上述定义都不是 2.设无向图的顶点个数为n ,则该图最多有( )条边。

A .n-1

B .n(n-1)/2

C . n(n+1)/2

D .0

E .n 2

【清华大学 1998 一、5 (2分)】【西安电子科技大 1998 一、6 (2分)】 【北京航空航天大学 1999 一、7 (2分)】

3.一个n 个顶点的连通无向图,其边的个数至少为( )。【浙江大学 1999 四、4 (4分)】

A .n-1

B .n

C .n+1

D .nlogn ; 4.要连通具有n 个顶点的有向图,至少需要( )条边。【北京航空航天大学 2000 一、6(2分)】

A .n-l

B .n

C .n+l

D .2n 5.n 个结点的完全有向图含有边的数目( )。【中山大学 1998 二、9 (2分)】

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

6.一个有n 个结点的图,最少有( )个连通分量,最多有( )个连通分量。

A .0

B .1

C .n-1

D .n 【北京邮电大学 2000 二、5 (20/8分)】

7.在一个无向图中,所有顶点的度数之和等于所有边数( )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( )倍。【哈尔滨工业大学 2001 二、3 (2分)】

A .1/2

B .2

C .1

D .4 8.用有向无环图描述表达式(A+B)*((A+B )/A ),至少需要顶点的数目为( )。【中山大学1999一、14】

A .5

B .6

C .8

D .9

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

A .逆拓扑有序

B .拓扑有序

C .无序的 【中科院软件所 1998】

10.下面结构中最适于表示稀疏无向图的是( ),适于表示稀疏有向图的是( )。

A .邻接矩阵

B .逆邻接表

C .邻接多重表

D .十字链表

E .邻接表

【北京工业大学 2001 一、3 (2分)】

11.下列哪一种图的邻接矩阵是对称矩阵?( )【北方交通大学 2001 一、11 (2分)】

A .有向图

B .无向图

C .AOV 网

D .AO

E 网

12. 从邻接阵矩????

?

????

?=01

0101

010A 可以看出,该图共有(①)个顶点;如果是有向图该图共有

(②) 条弧;如果是无向图,则共有(③)条边。【中科院软件所 1999 六、2(3分)】

①.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 .以上答案均不正确

13.当一个有N 个顶点的图用邻接矩阵A 表示时,顶点Vi 的度是( )。【南京理工大学1998一、4(2分)】

A .

∑=n

i j i A 1

]

,[ B .

[]

∑=n

1

j j ,i A C .

∑=n

i i j A 1

]

,[ D .

∑=n

i j i A 1

],[+

[]

∑=n

1

j i ,j A

14.用相邻矩阵A 表示图,判定任意两个顶点Vi 和Vj 之间是否有长度为m 的路径相连,则只要检查( )的第i 行第j 列的元素是否为零即可。【武汉大学 2000 二、7】

A .mA

B .A

C .A m

D .Am-1 15. 下列说法不正确的是( )。【青岛大学 2002 二、9 (2分)】

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

B .遍历的基本算法有两种:深度遍历和广度遍历 D .图的深度遍历是一个递归过程 16.无向图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)},对该图进行深度优先遍历,得到的顶点序列正确的是( )。【南京理工大学 2001 一、14 (1.5分)】

A .a,b,e,c,d,f

B .a,c,f,e,b,d

C .a,e,b,c,f,d

D .a,e,d,f,c,b 17. 设图如右所示,在下面的5个序列中,符合深度优先遍历的序列有多少?( )

【南京理工大学 2000 一、20 (1.5分)】

a e

b d f

c a c f

d

e b a e d

f c b a e f d c b a e f d b c

A .5个

B .4个

C .3个

D .2个

第17题图 第18题图

18.下图中给出由7个顶点组成的无向图。从顶点1出发,对它进行深度优先遍历得到的序列是( ① ),而进行广度优先遍历得到的顶点序列是( ② )。【中科院软件所 1999 六、2-(1)(2分)】

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

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

19.下面哪一方法可以判断出一个有向图是否有环(回路):【东北大学 2000 4、2(4分)】

A .深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径

20. 在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为( )。

A. O(n)

B. O(n+e)

C. O(n 2)

D. O(n 3

) 【合肥工业大学 2001

一、2 (2分)】 21. 下面是求连通网的最小生成树的prim 算法:集合VT ,ET 分别放顶点和边,初始为( 1 ),

下面步骤重复n-1次: a:( 2 );b:( 3 );最后:( 4 )。【南京理工大学 1997 一、11_14 (8分)】

(1).A.VT,ET为空 B.VT为所有顶点,ET为空

C.VT为网中任意一点,ET为空 D.VT为空,ET为网中所有边(2).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)上的权最大

(3).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

(4).A.ET 中为最小生成树 B.不在ET中的边构成最小生成树 C.ET中有n-1条边时为生成树,否则无解 D.ET中无回路时,为生成树,否则无解

22. (1). 求从指定源点到其余各顶点的迪杰斯特拉(Dijkstra)最短路径算法中弧上权不能为负的原因是在实际应用中无意义;

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

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

上面不正确的是()。【南京理工大学 2000 一、21 (1.5分)】

A.(1),(2),(3) B.(1) C.(1),(3) D.(2),(3)

23.当各边上的权值( )时,BFS算法可用来解决单源最短路径问题。【中科院计算所2000一、3 (2分)】

A.均相等 B.均互不相等 C.不一定相等

24. 求解最短路径的Floyd算法的时间复杂度为( )。【合肥工业大学 1999 一、2 (2分)】

A.O(n) B. O(n+c) C. O(n*n) D. O(n*n*n)

25.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},

E={,,,,,,,,},G的拓扑序列是()。

A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7

C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7

【北京航空航天大学 2000 一、7 (2分)】

26.若一个有向图的邻接距阵中,主对角线以下的元素均为零,则该图的拓扑有序序列()。

A.存在 B.不存在【中科院计算所1998 二、6 (2分)】【中国科技大学 1998二、6(2分)】

27.一个有向无环图的拓扑排序序列()是唯一的。【北京邮电大学 2001 一、3 (2分)】

A.一定 B.不一定

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

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

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

【南京理工大学 2000 一、9 (1.5分)】

29. 在用邻接表表示图时,拓扑排序算法时间复杂度为( )。

A. O(n)

B. O(n+e)

C. O(n*n)

D. O(n*n*n)

【合肥工业大学 2000 一、2 (2分)】【南京理工大学 2001 一、9 (1.5分)】

【青岛大学 2002 二、3 (2分)】

30. 关键路径是事件结点网络中()。【西安电子科技大学 2001应用一、4 (2分)】

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

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

31. 下面关于求关键路径的说法不正确的是()。【南京理工大学 1998 一、12 (2分)】 A.求关键路径是以拓扑排序为基础的

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

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

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

32.下列关于AOE网的叙述中,不正确的是()。

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

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

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

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

【北方交通大学 1999 一、7 (3分)】【北京工业大学 1999 一、1 (2分)】

二、判断题

1.树中的结点和图中的顶点就是指数据结构中的数据元素。()【青岛大学 2001 四、1 (1分)】

2.在n个结点的无向图中,若边数大于n-1,则该图必是连通图。()【中科院软件所1997一、4(1分)】

3.对有n个顶点的无向图,其边数e与各顶点度数间满足下列等式e=∑

=

n

i

Vi

TD

1

)

(

。()

【南京航空航天大学 1996 六、4 (1分)】

4. 有e条边的无向图,在邻接表中有e个结点。()【南京理工大学 1998 二、5 (2分)】

5. 有向图中顶点V的度等于其邻接矩阵中第V行中的1的个数。()【合肥工业大学2001

二、7(1分)】

6.强连通图的各顶点间均可达。()【北京邮电大学 2000 一、3 (1分)】

7.强连通分量是无向图的极大强连通子图。()【北京邮电大学 2002 一、7 (1分)】8.连通分量指的是有向图中的极大连通子图。()【燕山大学 1998 二、4 (2分)】9.邻接多重表是无向图和有向图的链式存储结构。()【南京航空航天大学 1995 五、5 (1分)】

10. 十字链表是无向图的一种存储结构。()【青岛大学 2001 四、7 (1分)】

11. 无向图的邻接矩阵可用一维数组存储。()【青岛大学 2000 四、5 (1分)】12.用邻接矩阵法存储一个图所需的存储单元数目与图的边数有关。()【东南大学 2001 一、4 (1分)】【中山大学 1994 一、3 (2分)】

13.有n个顶点的无向图, 采用邻接矩阵表示, 图中的边数等于邻接矩阵中非零元素之和的

一半。()

【北京邮电大学 1998 一、5 (2分)】

14. 有向图的邻接矩阵是对称的。()【青岛大学 2001 四、6 (1分)】

15.无向图的邻接矩阵一定是对称矩阵,有向图的邻接矩阵一定是非对称矩阵。()【东南大学 2001 一、3 (1分)】【哈尔滨工业大学 1999 三、4】

16. 邻接矩阵适用于有向图和无向图的存储,但不能存储带权的有向图和无向图,而只能使

用邻接表存储形式来存储它。()【上海海运学院 1995 一、9(1分) 1997 一、8(1分)1998 一、9(1分)】

17. 用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小与图中

结点个数有关,而与图的边数无关。()【上海海运学院 1996 一、8 (1分) 1999 一、9 (1分)】

18.一个有向图的邻接表和逆邻接表中结点的个数可能不等。()【上海交通大学 1998 一、12】

19.需要借助于一个队列来实现DFS算法。()【南京航空航天大学 1996 六、8 (1分)】20. 广度遍历生成树描述了从起点到各顶点的最短路径。()【合肥工业大学 2001 二、

8 (1分)】

21.任何无向图都存在生成树。()【北京邮电大学 2000 一、1 (1分)】

22. 不同的求最小生成树的方法最后得到的生成树是相同的.()【南京理工大学 1998

二、3 (2分)】

23.带权无向图的最小生成树必是唯一的。()【南京航空航天大学 1996 六、7 (1分)】24. 最小代价生成树是唯一的。()【山东大学 2001 一、5 (1分)】

25.一个网(带权图)都有唯一的最小生成树。()【大连海事大学 2001 一、14 (1分)】

26.连通图上各边权值均不相同,则该图的最小生成树是唯一的。()【哈尔滨工业大学1999 三、3】

27.带权的连通无向图的最小(代价)生成树(支撑树)是唯一的。()【中山大学 1994

一、10(2分)】

28. 最小生成树的KRUSKAL算法是一种贪心法(GREEDY)。()【华南理工大学 2002 一、

6(1分)】

29. 求最小生成树的普里姆(Prim)算法中边上的权可正可负。()【南京理工大学 1998

二、2 (2分)】

30.带权的连通无向图的最小代价生成树是唯一的。()【东南大学 2001 一、5(1分)】31. 最小生成树问题是构造连通网的最小代价生成树。()【青岛大学 2001 四、10(1分)】

32. 在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值。()

【合肥工业大学 2000 二、7(1分)】

33. 在用Floyd 算法求解各顶点的最短路径时,每个表示两点间路径的path k-1[I,J]一定是path k [I,J]的子集(k=1,2,3,…,n)。()【合肥工业大学 2000 二、6 (1分)】

34.拓扑排序算法把一个无向图中的顶点排成一个有序序列。()【南京航空航天大学1995

五、8(1分)】

35.拓扑排序算法仅能适用于有向无环图。()【南京航空航天大学 1997 一、7 (1分)】36. 无环有向图才能进行拓扑排序。()【青岛大学 2002 一、7 (1分)2001 一、8 (1分)】

37. 有环图也能进行拓扑排序。()【青岛大学 2000 四、6 (1分)】

38.拓扑排序的有向图中,最多存在一条环路。()【大连海事大学 2001 一、6(1分)】39.任何有向图的结点都可以排成拓扑排序,而且拓扑序列不唯一。()【上海交通大学1998 一、13】

40. 既使有向无环图的拓扑序列唯一,也不能唯一确定该图。()【合肥工业大学 2001

二、6(1分)】

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

【中科院软件所 1997 一、5 (1分)】

42.AOV网的含义是以边表示活动的网。()【南京航空航天大学 1995 五、7 (1分)】43.对一个AOV网,从源点到终点的路径最长的路径称作关键路径。【南京航空航天大学1995

五、9(1分)】

44. 关键路径是AOE网中从源点到终点的最长路径。()【青岛大学 2000 四、10(1分)】

45. AOE网一定是有向无环图。()【青岛大学 2001 一、9 (1分)】

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

【长沙铁道学院 1997 一、2 (1分)】

47.在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。()【大连海事大学 2001 一、15 (1分)】

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

【大连海事大学 2001 一、16 (1分)】

49.当改变网上某一关键路径上任一关键活动后,必将产生不同的关键路径。【上海交通大学1998 一、14】

三、填空题

1.判断一个无向图是一棵树的条件是______。

2.有向图G的强连通分量是指______。【北京科技大学 1997 一、7】

3.一个连通图的______是一个极小连通子图。【重庆大学 2000 一、1】

4.具有10个顶点的无向图,边的总数最多为______。【华中理工大学 2000 一、7 (1分)】5.若用n表示图中顶点数目,则有_______条边的无向图成为完全图。【燕山大学1998 一、6(1分)】

6. 设无向图 G 有n 个顶点和e 条边,每个顶点Vi 的度为di(1<=i<=n〉,则e=______

【福州大学 1998 二、2 (2分)】

7.G是一个非连通无向图,共有28条边,则该图至少有______个顶点。

【西安电子科技大 2001软件一、8 (2分)】

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

【合肥工业大学 2000 三、8 (2分)】

9.在有n个顶点的有向图中,每个顶点的度最大可达______。【武汉大学 2000 一、3】10.设G为具有N个顶点的无向连通图,则G中至少有______条边。

【长沙铁道学院 1997 二、2 (2分)】

11.n个顶点的连通无向图,其边的条数至少为______。【哈尔滨工业大学 2000 二、2(1分)】

12.如果含n个顶点的图形形成一个环,则它有______棵生成树。

【西安电子科技大学 2001软件一、2 (2分)】

13.N个顶点的连通图的生成树含有______条边。【中山大学 1998 一、9 (1分)】

14.构造n个结点的强连通图,至少有______条弧。【北京轻工业学院 2000 一、4(2分)】

15.有N个顶点的有向图,至少需要量______条弧

才能保证是连通的。【西南交通大学 2000 一、3】

16.右图中的强连通分量的个数为()个。

【北京邮电大学 2001 二、5 (2分)】

17.N个顶点的连通图用邻接矩阵表示时,该矩阵

至少有_______个非零元素。【中科院计算所1998 一、6(1分)】【中国科技大学1998 一、6(15/6分)】

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

【燕山大学 2001 二、5 (3分)】

19. 在有向图的邻接矩阵表示中,计算第I个顶点入度的方法是______。【青岛大学 2002

三、7 (2分)】

20. 对于一个具有n个顶点e条边的无向图的邻接表的表示,则表头向量大小为______,邻接表的边结点个数为______。【青岛大学 2002 三、8 (2分)】

21. 遍历图的过程实质上是______,breath-first search遍历图的时间复杂度______;depth-first search遍历图的时间复杂度______,两者不同之处在于______,反映在数据结构上的差别是______。

【厦门大学 1999 一、3】

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

【南京理工大学 1996 二、2 (2分)】

23. 一无向图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)},则采用的遍历方法是______。

【南京理工大学 1997 三、6 (1分)】

24. 为了实现图的广度优先搜索,除了一个标志数组标志已访问的图的结点外,还需______存放被访问的结点以实现遍历。【南京理工大学 1999 二、9 (2分)】

25. 按下图所示,画出它的广度优先生成树______和深度优先生成树______。

【西安电子科技大学 1998 三、6 (5分)】

26.构造连通网最小生成树的两个典型算法是______。【北京科技大学 1998 一、5】27.求图的最小生成树有两种算法,______算法适合于求稀疏图的最小生成树。

【南京理工大学 2001 二、6(2分)】

28. Prim(普里姆)算法适用于求______的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求______的网的最小生成树。【厦门大学 1999 一、4】

29.克鲁斯卡尔算法的时间复杂度为______,它对______图较为适合。【中科院计算所 1999 二、3 (2分)】

30.对于含N个顶点E条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为______,利用Kruskal算法生成最小代价生成树其时间复杂度为______。【长沙铁道学院 1998 二、2 (4分)】

31.下面描述的是一种构造最小生成树算法的基本思想。设要处理的无向图包括n个节点V1,V2,...,Vn,用相邻矩阵A表示,边的权全是正数。请在下列划线处填上正确叙述。(1).若(Vi,Vj)是边,则A(i,j)的值等于______,若(Vi,Vj)不是边,则A(i,j)的值是一个比任何边的权______,矩阵的对角线元素全为0。

(2).构造最小生成树过程中,若节点Vi已包括进生成树,就把相邻矩阵的对角线元素A(i,i)置成______,若(Vi,Vj)已包括进生成树,就把矩阵元素A(i,j)置成______。(3).算法结束时,相邻矩阵中_____的元素指出最小生成树的_____。【山东工业大学1998

二、4(6分)】

32. 有一个用于n个顶点连通带权无向图的算法描述如下:

(1).设集合T1与T2,初始均为空;

(2).在连通图上任选一点加入T1;

(3).以下步骤重复n-1次:

a.在i属于T1,j不属于T1的边中选最小权的边;

b.该边加入T2。

上述算法完成后,T2中共有______条边,该算法称______算法,T2中的边构成图的______。

【南京理工大学 1999 二、7 (4分)】

33. 有向图G可拓扑排序的判别条件是______。【长沙铁道学院 1998 二、9(2分)】

34. Dijkstra最短路径算法从源点到其余各顶点的最短路径的路径长度按______次序依次产生,该算法弧上的权出现______情况时,不能正确产生最短路径。【南京理工大学 1999 二、8(4分)】

35. 求从某源点到其余各顶点的Dijkstra算法在图的顶点数为10,用邻接矩阵表示图时计算时间约为10ms,则在图的顶点数为40,计算时间约为______ms。【南京理工大学 2000 二、3 (1.5分)】

36.求最短路径的Dijkstra算法的时间复杂度为______。【哈尔滨工业大学 2001 一、5 (2分)】

37.有向图G=(V,E),其中 V(G)={0,1,2,3,4,5},用三元组表示弧及弧上的权

d.E(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>},则

【南京理工大学 1998 从源点0到顶点3的最短路径长度是______,经过的中间顶点是______。

三、6 (4分)】

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

【南京理工大学 1998 三、7(4分)】

39.设有向图有n个顶点和e条边,进行拓扑排序时,总的计算时间为______。

【西安电子科技大学 1999软件一、7 (2分)】【武汉大学 2000 一、7】40.AOV网中,结点表示______,边表示______。AOE网中,结点表示______,边表示______。

【北京理工大学 2001 七、3 (2分)】

41.在AOE网中,从源点到汇点路径上各活动时间总和最长的路径称为______。【重庆大学2000一、2】

42.在 AOV网中,存在环意味着______,这是______的;对程序的数据流图来说,它表明存在______。

【厦门大学 1999 一、2】

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

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

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

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

【南京理工大学 1996 二、3 (6分)】

44.已知图的邻接表结构为:

CONST vtxnum={图的顶点数}

TYPE vtxptr=1..vtxnum;

arcptr=^arcnode;

arcnode=RECORD adjvex:vtxptr; nextarc:arcptr END;

vexnode=RECORD vexdata:{和顶点相关的信息};firstarc:arcptr END;

adjlist=ARRAY[vtxptr]OF vexnode;

本算法是实现图的深度优先遍历的非递归算法。其中,使用一个顺序栈stack。栈顶指针为top。visited为标志数组。

PROC dfs(g:adjlist;v0:vtxptr);

top=0; write(v0); visited[v0]:=ture; p:=g[v0].firstarc;

WHILE (top<>0)OR(p<>NIL)DO

[WHILE(1)_______DO

[v:=p^.adjvex;

IF(2)_______ THEN p:=p^.nextarc

ELSE [write(v); visited[v]:=true; top:=top+1; stack[top]:=p;

(3)_______] ]

IF top<>0 THEN[p:=stack[top]; top:=top-1; (4)_______]

]

ENDP.同济大学 2000 二、2 (10分)】

45.下面的算法完成图的深度优先遍历,请填空。

PROGRAM graph_traver;

CONST nl=max_node_number;

TYPE vtxptr=1..nl; vtxptr0=0..nl;

arcptr=^arcnode;

arcnode=RECORD vexi ,vexj: vtxptr; nexti, nextj: arcptr; END;;

vexnode=RECORD vexdata: char; firstin,firstout: arcptr; END;

graph=ARRAY[vtxptr0] OF vexnode ;

VAR ga:graph; n: integer;

visited: ARRAY[vtxptr0] OF boolean ;

FUNC order (g: graph; v: char): vtxptr;

(1)_______; i:=n;

WHILE g[i].vexdata<>v DO i:=i-1;

order:=i;

ENDF;

PROC creat(var g: graph);

readln(n,e);

FOR i:= 1 TO n DO [readln(g[i].vexdata); g[i].firstin :=NIL ;

g[i].firstout:=NIL;]

FOR k:= 1 TO e DO [readln (vt,vh);

i:=order (g,vt); j:=order (g,vh); new (p); p^.vexi:=i ; p^.vexj:=j

p^.nextj:= ____(2)____; ___(3)____ :=p;

p^.nexti:=: ____(4)____; ___(5)____ :=p;]

ENDP;

FUNC firstadj(g:graph; v:char): vtxptr0;

i:=order(g,v); p:=g[i].firstout;

IF p<>NIL THEN firstadj:=(6)_______ELSE firstadj:=0;

ENDF;

FUNC nextadj(g:graph; v:char; w:char): vtxptr0;

i:=order(g,v); j:=order(g,w); p:=(7)_______;

WHILE(p<>NIL ) AND (p^.vexj<>j) DO(8)______;

IF (9)______AND(10)______THEN nextadj:=p^.nexti^.vexj ELSE nextadj:=0;

ENDF;

PROC dfs(g:graph; v0:char);

write(v0:2); visited[order(g,v0)]:=true; w:=(11)_______;

WHILE w<>0 DO

[IF (12)______ THEN dfs(g,g[w].vexdata);

w:=(13)_______;]

ENDP;

PROC traver(g:graph);

FOR i:=1 TO n DO visited[i]:=false;

FOR i:=1 TO n DO IF NOT visited[i] THEN dfs(g,g[i].vexdata);

ENDP;

BEGIN

creat(ga); traver(ga);

END. 【北方交通大学 1999 三(20分)】

46.n个顶点的有向图用邻接矩阵array表示,下面是其拓扑排序算法,试补充完整。

注:(1).图的顶点号从 0开始计;(2).indegree 是有n个分量的一维数组,放顶点的入度;

(3).函数 crein 用于算顶点入度;(4).有三个函数push(data),pop( ),check( )其含义为数据 data进栈,退栈和测试栈是否空(不空返回1,否则0)。

crein( array ,indegree,n)

{ for (i=0;i

for (j=0;j

}

topsort (array,indegree,n)

{ count= ((4)_______)

for (i=0;i

while (check( ))

{ vex=pop( ); printf(vex); count++;

for (i=0;i

{ k=array(6)_______

if ((7)_______ ) { indegree[i]--; if ((8)_______ ) push(i); }

}

}

if( count

} 【南京理工大学 2000 三、4 (6分)】

47.假设给定的有向图是用邻接表表示,作为输入的是图中顶点个数n和边的个数m, 以及

图的m条边。在下面的程序中,我们用readdata程序过程输入图的信息,并建立该图的邻

接表;利用topol程序过程获得图中顶点的一个拓扑序列。

PROGRAM topol_order(input , output) ;

CONST maxn=20 ;

TYPE nodeptr=^nltype ;

nltype=RECORD num : integer ; link : nodeptr END ;

chtype=RECORD count : integer ; head : nodeptr END ;

VAR ch : ARRAY [1 .. maxn] OF chtype ; m , n , top : integer ;

PROCEDURE readdata ;

VAR i , j , u , v : integer ; p : nodeptr ;

BEGIN

write (′input vertex number n= ′); readln (n) ;

write (′input edge number m= ′); readln(m) ;

FOR i:=1 TO n DO BEGIN ch[i].count:= 0; ch[i].head:=NIL END;

writeln(′input edges :′);

FOR j:= 1 TO m DO

BEGIN write( j :3 , ′: ′) ; readln( u , v ) ; new( p ) ;

ch[v].count:=ch[v].count+1; p^.num:=v; (1) ___ ; (2) __; END

END ;

PROCEDURE topol ;

VAR i, j, k: integer; t: nodeptr ;

BEGIN

top:= 0 ;

FOR i := 1 TO n DO

IF ch[i].count=0 THEN BEGIN ch[i].count := top ;top := i END;

i:= 0 ;

WHILE (3) ___ DO

BEGIN (4) __; (5) __ ; write(j : 5) ;i:= i + 1 ;t:=ch[j].head ;

WHILE t<>NIL DO

BEGIN k := t^.num ; ch[k].count:=ch[k].count–1 ;

IF ch[k].count=0 THEN BEGIN ch[k].count:=top; top:=k

END;

(6) ______ ; END

END ; writeln;

IF i

END;

BEGIN

readdata ; writeln (′output topol order : ′); topol

END. 【复旦大学 1995 三(18分)】

48.如下为拓扑排序的C程序,Array

(1).列出对右图执行该程序后的输出结果。

(2).在程序空白处填上适当语句。

void topsort(hdnodes graph [],int n)

{int i,j,k,top; node_pointer ptr ;

top=-1;

for (i=0; i

if (!graph[i].count){graph[i].count=top; top=i; }

for (i=0; i

if(1)____ {fprintf(stderr, "\ngraph has a cycle \n"); exit(1); } else {j=top;(2)_____; printf( "v%d, " ,j) ;

for (ptr=graph[j].link; ptr; ptr=ptr->link)

{k=ptr->vertex; graph[k].count--;

if((3)_____) {graph[k].count=top; top=k; } } }

} 【浙江大学 2000 六(15分)】

四、应用题

1.(1).如果G1是一个具有n个顶点的连通无向图,那么G1最多有多少条边?G1最少有多少条边?

(2).如果G2是一个具有n个顶点的强连通有向图,那么G2最多有多少条边?G2最少有多少条边?

(3).如果G3是一个具有n个顶点的弱连通有向图,那么G3最多有多少条边?G3最少有多少条边?

【复旦大学 1997 一(9分)】

2.n个顶点的无向连通图最少有多少条边?n个顶点的有向连通图最少有多少条边?

【山东大学 2000 一、3 (4分)】

3.一个二部图的邻接矩阵A是一个什么类型的矩阵?【北京科技大学 1999 一、8(2分)】4.证明:具有n个顶点和多于n-1条边的无向连通图G一定不是树。【东南大学 1993 四(10分)】

5.证明对有向图的顶点适当的编号,可使其邻接矩阵为下三角形且主对角线为全0的充要条件是该图为无环图。【北京邮电大学 2002 三(10分)】

6.用邻接矩阵表示图时,矩阵元素的个数与顶点个数是否相关?与边的条数是否有关?

【西安电子科技大学 2000计应用一、6(5分)】

7.请回答下列关于图(Graph)的一些问题:(每题4分)

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

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

(3).对于一个有向图,不用拓扑排序,如何判断图中是否存在环?【清华大学2000

一(12分)】

8.解答问题。设有数据逻辑结构为:

B = (K, R), K = {k1, k2, …, k9}

R={, , ,, , ,, , , , }

(1).画出这个逻辑结构的图示。(3分)

(2).相对于关系r, 指出所有的开始接点和终端结点。(2分)

(3).分别对关系r中的开始结点,举出一个拓扑序列的例子。(4分)

(4).分别画出该逻辑结构的正向邻接表和逆向邻接表。(6分)【山东工业大学 1999 三(15分)】

9.有向图的邻接表存储如下:(1).画出其邻接矩阵存储;(2).写出图的所有强连通分量;(3).写出顶点a到顶点i的全部简单路径。【东北大学 1997 一、5 (5分)】

10.试用下列三种表示法画出网G 的存储结构,并评述这三种表示法的优、缺点:(1).邻接矩阵表示法; (2).邻接表表示法; (3).其它表示法。【华中理工大学2000 三(12分)】

11.已知无向图G,V(G)={1,2,3,4},E(G)={(1,2),(1,3),(2,3),(2,4),(3,4)}试画出G的邻接多表,并说明,若已知点I,如何根据邻接多表找到与I相邻的点j?

【东南大学 1994 一、2 (8分) 1998 一、6(8分)】

12.如何对有向图中的顶点号重新安排可使得该图的邻接矩阵中所有的1都集中到对角线以上?

【清华大学 1999 一、5 (2分)】

13.假定G=(V,E)是有向图,V={1,2,...,N},N>=1,G以邻接矩阵方式存储,G 的邻接矩阵为A,即A是一个二维数组,如果i到j有边,则A[i,j]=1,否则A[i,j]=0,请给出一个算法,该算法能判断G是否是非循环图(即G中是否存在回路),要求算法的时间复杂性为O(n*n)。

【吉林大学 1998 三(16分)】

14.首先将如下图所示的无向图给出其存储结构的邻接链表表示,然后写出对其分别进行深度,广度优先遍历的结果。【天津大学 1999 一】

15.下面的邻接表表示一个给定的无向图

(1)给出从顶点v1开始,对图G用深度优先搜索法进行遍历时的顶点序列;

(2)给出从顶点v1开始,对图G用广度优先搜索法进行遍历时的顶点序列。【复旦大学1998六(10分))

15题图 14题图 16题图

16.给出图G :

(1).画出G 的邻接表表示图; (2).根据你画出的邻接表,以顶点①为根,画出G 的深度优先生成树和广度优先生成树。 【南开大学 1997 五 (14分)】

17.设G=(V,E)以邻接表存储,如图所示,试画出图的深度优先和广度优先生成树。

【北京轻工业学院 1998 八 (6分)】 18.对一个图进行遍历可以得到不同的遍历序列,那么导致得到的遍历序列不唯一的因素有哪些?

【北京航空航天大学 1998 一、7 (4分)】 19.解答下面的问题 (1).如果每个指针需要4个字节,每个顶点的标号占2个字节,每条边的权值占2个字

19题图 20题图

(2).写出下图从顶点1开始的DFS 树。【西安电子科技大学 2000计应用 六 (10分)】 20.如下所示的连通图,请画出: (1).以顶点①为根的深度优先生成树;(5分) (2).如果有关节点,请找出所有的关节点。(5分)【清华大学 1998 七 (10分)】

(1).根据此表及约束条件画出相应的图状结构模型,并画出此图的邻接表结构; (2).写出从元素A 出发按“广度优先搜索”算法遍历此图的元素序列.

【北京科技大学 1999 五 2000 五 (12分)】 22.已知无向图如下所示: (1).给出从V1开始的广度优先搜索序列;(2).画出它的邻接表; (3).画出从V1开始深度优先搜索生成树。【燕山大学 2000 五 (5分)】

第22题图 第23题图 23.已知某图的邻接表为

(1).写出此邻接表对应的邻接矩阵;(2分) (2).写出由v1开始的深度优先遍历的序列;(2分) (3).写出由v1开始的深度优先的生成树;(2分) (4).写出由v1开始的广度优先遍历的序列;(2分) (5).写出由v1开始的广度优先的生成树;(2分) (6).写出将无向图的邻接表转换成邻接矩阵的算法。(8分) 【山东大学 1998 六、

18分】

24.考虑右图: (1)从顶点A 出发,求它的深度优先生成树

(2)从顶点E 出发,求它的广度优先生成树 (3)根据普利姆(Prim) 算法, 求它的最小生成树【上海交通大学 1999 六 (12分)】

25.在什么情况下,Prim 算法与Kruskual 算法生成不同的MST ?

【西安电子科技大学 2000计应用 一、11 (5分)】 26.下面是求无向连通图最小生成树的一种方法。

将图中所有边按权重从大到小排序为(e 1,e 2,…,e m )

i:=1

WHILE (所剩边数 >=顶点数)

BEGIN

从图中删去e i

若图不再连通,则恢复e i i:=i+1 END.

试证明这个算法所得的图是原图的最小代价生成树。【北京邮电大学 1999 五 (10分)】 27.已知一个无向图如下图所示,要求分别用Prim 和Kruskal 算法生成最小树(假设以①为起点,试画出构造过程)。【哈尔滨工业大学 1999 九 (8

E A B G C D

F 5

3 6 1

4 1 3

2 5

27题图 28题图 28.G=(V,E)是一个带有权的连通图,则:

(1).请回答什么是G 的最小生成树; (2).G 为下图所示,请找出G 的所有最小生成树。【北方交通大学 1993 二 (12分)】 29.试写出用克鲁斯卡尔(Kruskal )算法构造下图的一棵最小支撑(或生成)树的过程。

第29图 【吉林大学 2000 一、3 (3分)】 30.求出下图的最小生成树。【合肥工业大学 1999 四、2 (5分)】 第30题图

31.一带权无向图的邻接矩阵如下图 ,试画出它的一棵最小生成树。

【浙江大学 1994 五 (8分)】 第32题图 32.请看下边的无向加权图。 (1).写出它的邻接矩阵( 5分) (2).按Prim 算法求其最小生成树,并给出构造最小生成树过程中辅助数组的各分量值(15分)

辅助数组内各分量值:【华北计算机系统工程研究所 1999 四 (20分)】

33.已知世界六大城市为:北京(Pe)、纽约(N)、巴黎(Pa)、伦敦(L) 、东京(T) 、墨西哥(M),下表给定了这六大城市之间的交通里程:

世界六大城市交通里程表(单位:百公里)

(2).画出该图的邻接表表示法;

(3).画出该图按权值递增的顺序来构造的最小(代价)生成树.

【上海海运学院1995 六(9分) 1999 五(14分)】

34.已知顶点1-6和输入边与权值的序列(如右图所示):每行三个数表示一条

的两个端点和其权值,共11行。请你:

(1).采用邻接多重表表示该无向网,用类PASCAL语言描述该数据结构,画出

储结构示意图,要求符合在边结点链表头部插入的算法和输入序列的次序。

(2).分别写出从顶点1出发的深度优先和广度优先遍历顶点序列,以及相应

生成树。

(3).按prim算法列表计算,从顶点1始求最小生成树,并图示该树。

【北京工业大学 1999 四(20分)】

35.下图表示一个地区的通讯网,边表示城市间的通讯线路,边上的权表示架设线路花费的代价,如何选择能沟通每个城市且总代价最省的n-1条线路,画出所有可能的选择。【东北大学2000一、4(4分)】

第36题图

36.设无向网G 如上: 第35题图 (1). 设顶点a 、b 、c 、d 、e 、f 、h 的序号分别为1、2、3、4、5、6、7,请列出网G 的邻接矩阵、画出网G 的邻接表结构: (2).写出从顶点a 出发,

按“深度优先搜索”和“广度优先搜索”方法遍历网G 所的到的顶点序列:

按Prim 算法求出网G 的一棵最小生成树。【北京科技大学 2001 五 (12分)】

37.有一图的邻接矩阵如下,试给出用弗洛伊德算法求各点间最短距离的矩阵序列A 1,A 2

,A 3,A 4

A=

????????????∞∞∞∞∞∞0340561020

【北京邮电大学2001四、5(5分)】

38.下图所示是一带权有向图的邻接表法存储表示。其中出边表中的每个结点均含有三个字段,依次为边的另一个顶点在顶点表中的序号、边上的权值和指向下一个边结点的指针。试求:

(1).该带权有向图的图形; (2).从顶点V1为起点的广度优先周游的顶点序列及对应的生成树(即支撑树); (3).以顶点V1为起点的深度优先周游生成树; (4).由顶点V1到顶点V3的最短路径。【中山大学 1994 四 (12分)】

39.用最短路径算法,求如下图中a 到z 的最短通路。【西南财经大学 1999 四】

40.已知一有向网的邻接矩阵如下,如需在其中一个结点建立娱乐中心,要求该结点距其它各结点的最长往返路程最短,相同条件下总的往返路程越短越好,问娱乐中心应选址何处?给出解题过程。

第39题图

123456(顶点边)(出边表)

??????????????????∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞052301101404230320654321V V V V V V

【北京邮电大学 2002 四、1 (10分)】

41.求出下图中顶点1到其余各顶点的最短路径。【厦门大学 2002 八、2 (5分)】 42.试利用Dijkstra 算法求下图中从顶点a 到其他个顶点间的最短路径,写出执行算法过程中各步的状态。

【东南大学 2000 四(10分)】

43.对于如下的加权有向图,给出算法Dijkstra 产生的最短路径的支撑树,设顶点A 为源

点,并写出生成过程。【吉林大学 1999 一、2 (4分)】

44.已知图的邻接矩阵为:

当用邻接表作为图的存储结构,且邻接表都按序号从大到小排序时,试写出: (1).以顶点V1为出发点的唯一的深度优先遍历; (2).以顶点V1为出发点的唯一的广度优先遍历; (3).该图唯一的拓扑有序序列。【同济大学 1998 一 (12分 )】 45.已知一图如下图所示:

(1).写出该图的邻接矩阵; (2).写出全部拓扑排序; (3).以v1为源点,以v8为终点,给出所有事件允许发生的最早时间和最晚时间,并

第41题图

第43题图 21

第42题图

给出关键路径; (4).求V1结点到各点的最短距离。【北京邮电大学 2000 五 (15分)】

46.(1).对于有向无环图,叙述求拓扑有序序列的步骤; (2).对于以下的图,写出它的四个不同的拓扑有序序列。【南开大学 1998 二 (12分)】 47.有向图的拓扑排序能否用图的深度搜索模式来查找?若能,请简述方法,若不能,请简述原因

【西北大学 2000 二、8 (5分)】

48.下图是带权的有向图G 的邻接表表示法,求:

(1).以结点V1出发深度遍历图G 所得的结点序列; (2).以结点V1出发广度遍历图G 所得的结点序列; (3).从结点V1到结点V8的最短路径; (4).从结点V1到结点V8的关键路径。

【青岛海洋大学 1999 四(10分)】

49.对有五个结点{ A,B, C, D, E}的图的邻接矩阵,

????????????????∞∞∞∞∞∞∞∞∞∞∞∞∞05001020060010301000

(1).画出逻辑图 ; (2).画出图的十字链表存储; (3).基于邻接矩阵写出图的深度、广度优先遍历序列; (4).计算图的关键路径。

【华南师范大学 1999 三 (20分)】

50.何为AOE 网的始点和终点,一个正常的AOE 网是否只有一个始点和一个终点?

【首都经贸大学 1997 一、4 (4分)】

51.下表给出了某工程各工序之间的优先关系和各工序所需时间

第45题图

第46题图

最新版数据结构1800题含完整答案详解

数据结构1800例题与答案 第一章绪论 一、选择题(每小题2分) 1.算法的计算量的大小称为计算的( B )。【北京邮电大学2000 二、3 (20/8分)】 A.效率B.复杂性C.现实性D.难度 2.算法的时间复杂度取决于(C)。【中科院计算所1998 二、1 (2分)】 A.问题的规模B.待处理数据的初态C.A和B D.都不是 3.计算机算法指的是(①C ),它必须具备(② B )这三个特性。 ①A.计算方法B.排序方法 C.解决问题的步骤序列D.调度方法 ②A.可执行性、可移植性、可扩充性B.可执行性、确定性、有穷性 C.确定性、有穷性、稳定性D.易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。【中山大学1998 二、1(2分)】 A.程序B.问题求解步骤的描述 C.要满足五个基本特性D.A和C. 5.下面关于算法说法错误的是( D )【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是(C )【南京理工大学2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为( C )两大类。【武汉交通科技大学1996 一、4(2分)】 A.动态结构、静态结构B.顺序结构、链式结构 C.线性结构、非线性结构D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是( D )。【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构( D )?【北方交通大学2001 一、1(2分)】 A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?(A)【北方交通大学2001 一、2(2分)】 A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为(C)【北京工商大学2001 一、10(3分)】 FOR i:=1 TO n DO

数据结构 图的基本操作实现

实验五图的遍历及其应用实现 一、实验目的 1.熟悉图常用的存储结构。 2.掌握在图的邻接矩阵和邻接表两种结构上实现图的两种遍历方法实现。 3.会用图的遍历解决简单的实际问题。 二、实验内容 [题目一] :从键盘上输入图的顶点和边的信息,建立图的邻接表存储结构,然后以深度优先搜索和广度优先搜索遍历该图,并输出起对应的遍历序列. 试设计程序实现上述图的类型定义和基本操作,完成上述功能。该程序包括图类型以及每一种操作的具体的函数定义和主函数。 提示: 输入示例 上图的顶点和边的信息输入数据为: 5 7 DG A B C D E AB AE BC CD DA DB EC [题目二]:在图G中求一条从顶点 i 到顶点 s 的简单路径 [题目三]:寻求最佳旅游线路(ACM训练题) 在一个旅游交通网中,判断图中从某个城市A到B是否存在旅游费用在s1-s2元的旅游线路,为节省费用,不重游故地。若存在这样的旅游线路则并指出该旅游线路及其费用。 输入: 第一行:n //n-旅游城市个数 第2行:A B s1 s2 //s1,s2-金额数 第3行---第e+2行 ( 1≤e≤n(n-1)/2 ) 表示城市x,y之间的旅行费用,输入0 0 0 表示结束。

输出: 第一行表示 A到B的旅游线路景点序列 第二行表示沿此线路,从A到B的旅游费用 设计要求: 1、上机前,认真学习教材,熟练掌握图的构造和遍历算法,图的存储结 构也可使用邻接矩阵等其他结构. 2、上机前,认真独立地写出本次程序清单,流程图。图的构造和遍历算法 分别参阅讲义和参考教材事例 图的存储结构定义参考教材 相关函数声明: 1、/* 输入图的顶点和边的信息,建立图*/ void CreateGraph(MGraph &G) 2、/* 深度优先搜索遍历图*/ void DFSTraverse(Graph G, int v) 3、/*广度优先搜索遍历图 */ void BFSTraverse(Graph G, int v)4、 4、/* 其他相关函数 */…… 三、实验步骤 ㈠、数据结构与核心算法的设计描述 ㈡、函数调用及主函数设计 (可用函数的调用关系图说明) ㈢程序调试及运行结果分析 ㈣实验总结 四、主要算法流程图及程序清单 1、主要算法流程图: 2、程序清单 (程序过长,可附主要部分)

目前最完整的数据结构1800题包括完整答案-第三章-栈和队列范文(汇编)

第3章栈和队列 一选择题 1. 对于栈操作数据的原则是()。【青岛大学 2001 五、2(2分)】 A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序 2. 在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为( ③ )。 为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 ( ④ )分别设在这片内存空间的两端,这样,当( ⑤ )时,才产生上溢。①, ②: A. 空 B. 满 C. 上溢 D. 下溢 ③: A. n-1 B. n C. n+1 D. n/2 ④: A. 长度 B. 深度 C. 栈顶 D. 栈底 ⑤: A. 两个栈的栈顶同时到达栈空间的中心点. B. 其中一个栈的栈顶到达栈空间的中心点. C. 两个栈的栈顶在栈空间的某一位置相遇. D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底. 【上海海运学院 1997 二、1(5分)】【上海海运学院 1999 二、1(5分)】 3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()。 A. 不确定 B. n-i+1 C. i D. n-i 【中山大学 1999 一、9(1分)】 4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是()。 A. i-j-1 B. i-j C. j-i+1 D. 不确定的 【武汉大学 2000 二、3】 5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,p N,若p N是n,则p i是( )。 A. i B. n-i C. n-i+1 D. 不确定 【南京理工大学 2001 一、1(1.5分)】 6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?() A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 【北方交通大学 2001 一、3(2分)】 7. 设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。【中科院计算所2000一、10(2分)】 A. 1,2,4,3, B. 2,1,3,4, C. 1,4,3,2, D. 4,3,1,2, E. 3,2,1,4, 8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是()。 A. 2 3 4 1 5 B. 5 4 1 3 2 C. 2 3 1 4 5 D. 1 5 4 3 2 【南开大学 2000 一、1】【山东大学 2001 二、4 (1分)】【北京理工大学 2000 一、2(2分)】 9. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是()。 A. 5 1 2 3 4 B. 4 5 1 3 2 C. 4 3 1 2 5 D. 3 2 1 5 4 【合肥工业大学 2001 一、1(2分)】 10. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是

目前最完整的数据结构1800题包括完整答案树和二叉树答案

第6章树和二叉树 部分答案解释如下。 12. 由二叉树结点的公式:n=n0+n1+n2=n0+n1+(n0-1)=2n0+n1-1,因为n=1001,所以1002=2n0+n1,在完全二叉树树中,n1只能取0或1,在本题中只能取0,故n=501,因此选E。 42.前序序列是“根左右”,后序序列是“左右根”,若要这两个序列相反,只有单支树,所以本题的A和B均对,单支树的特点是只有一个叶子结点,故C是最合适的,选C。A或B 都不全。由本题可解答44题。 47. 左子树为空的二叉树的根结点的左线索为空(无前驱),先序序列的最后结点的右线索为空(无后继),共2个空链域。 52.线索二叉树是利用二叉树的空链域加上线索,n个结点的二叉树有n+1个空链域。 部分答案解释如下。 6.只有在确定何序(前序、中序、后序或层次)遍历后,遍历结果才唯一。 19.任何结点至多只有左子树的二叉树的遍历就不需要栈。 24. 只对完全二叉树适用,编号为i的结点的左儿子的编号为2i(2i<=n),右儿子是2i+1(2i+1<=n) 37. 其中序前驱是其左子树上按中序遍历的最右边的结点(叶子或无右子女),该结点无右孩子。 38 . 新插入的结点都是叶子结点。 42. 在二叉树上,对有左右子女的结点,其中序前驱是其左子树上按中序遍历的最右边的结点(该结点的后继指针指向祖先),中序后继是其右子树上按中序遍历的最左边的结点(该结点的前驱指针指向祖先)。 44.非空二叉树中序遍历第一个结点无前驱,最后一个结点无后继,这两个结点的前驱线索和后继线索为空指针。 三.填空题

1.(1)根结点(2)左子树(3)右子树 2.(1)双亲链表表示法(2)孩子链表表示法(3)孩 子兄弟表示法 3.p->lchild==null && p->rchlid==null 4.(1) ++a*b3*4-cd (2)18 5.平衡 因子 6. 9 7. 12 8.(1)2k-1 (2)2k-1 9.(1)2H-1 (2)2H-1 (3)H=?log2N?+1 10. 用顺序存储二叉树时,要按完全二叉树的形式存储,非完全二叉树存储时,要加“虚结 点”。设编号为i和j的结点在顺序存储中的下标为s 和t ,则结点i和j在同一层上的条 件是?log2s?=?log2t?。 11. ?log2i?=?log2j?12.(1)0 (2)(n-1)/2 (3)(n+1)/2 (4) ?log2n?+1 13.n 14. N2+1 15.(1) 2K+1-1 (2) k+1 16. ?N/2? 17. 2k-2 18. 64 19. 99 20. 11 21.(1) n1-1 (2)n2+n3 22.(1)2k-2+1(第k层1个结点,总结点个数是2H-1,其双亲是2H-1/2=2k-2)(2) ?log2i?+1 23.69 24. 4 25.3h-1 26. ?n/2? 27. ?log2k?+1 28.(1)完全二叉树 (2)单枝树,树中任一结点(除最后一个结点是叶子外),只有左子女或 只有右子女。 29.N+1 30.(1) 128(第七层满,加第八层1个) (2) 7 31. 0至多个。任意二叉树,度为1的结点个数没限制。只有完全二叉树,度为1的结点个 数才至多为1。 32.21 33.(1)2 (2) n-1 (3) 1 (4) n (5) 1 (6) n-1 34.(1) FEGHDCB (2)BEF(该二叉树转换成森林,含三棵树,其第一棵树的先根次序是 BEF) 35.(1)先序(2)中序 36. (1)EACBDGF (2)2 37.任何结点至多只有右子女 的二叉树。 38.(1)a (2) dbe (3) hfcg 39.(1) . (2) ...GD.B...HE..FCA 40.DGEBFCA 41.(1)5 (2)略 42.二叉排序树 43.二叉树 44. 前序 45.(1)先根次序(2)中根次序46.双亲的右子树中最左下的叶子结点47.2 48.(n+1)/2 49.31(x的后继是经x的双亲y的右子树中最左下的叶结点) 50.(1)前驱 (2)后 继 51.(1)1 (2)y^.lchild (3)0 (4)x (5)1 (6) y (7)x(编者注:本题按 中序线索化) 52.带权路径长度最小的二叉树,又称最优二叉树 53.69 54.(1)6 (2)261 55.(1)80 (2)001(不唯一)56.2n0-1 57.本题①是表达式求值,②是在二叉排序树中删除值为x的结点。首先查找x,若没有x, 则结束。否则分成四种情况讨论:x结点有左右子树;只有左子树;只有右子树和本身是叶 子。 (1)Postoder_eval(t^.Lchild) (2) Postorder_eval(t^.Rchild) (3)ERROR(无此运 算符)(4)A (5)tempA^.Lchild (6)tempA=NULL(7)q^.Rchild (8)q (9)tempA^.Rchild (10)tempA^.Item

目前最完整的数据结构1800题包括完整答案 第五章 数组和广义表

第 5 章数组和广义表 一、选择题 1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其 存储地址为1,每个元素占一个地址空间,则a85的地址为()。【燕山大学 2001 一、2 (2分)】 A. 13 B. 33 C. 18 D. 40 2. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址, 那么这个数组的体积是(①)个字节。假设存储数组元素A[1,0]的第一个字节的地址是0, 则存储数组A的最后一个元素的第一个字节的地址是(②)。若按行存储,则A[2,4]的第 一个字节的地址是(③)。若按列存储,则A[5,7]的第一个字节的地址是(④)。就一般情 况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。供选择的 答案:【上海海运学院 1998 二、2 (5分)】 ①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120 G. 156 H. 234 I. 276 J. 282 K. 283 L. 288 ⑤: A.行与列的上界相同 B. 行与列的下界相同 C. 行与列的上、下界都相同 D. 行的元素个数与列的元素个数相同 3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10, 数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。 A. BA+141 B. BA+180 C. BA+222 D. BA+225 【南京理工大学 1997 一、8 (2分)】 4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存 储单元,基地址为10,则LOC[5,5]=()。【福州大学 1998 一、10 (2分)】 A. 808 B. 818 C. 1010 D. 1020 5. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000 的内存单元中,则元素A[5,5]的地址是( )。【南京理工大学 2001 一、13 (1.5分)】 A. 1175 B. 1180 C. 1205 D. 1210 6. 有一个二维数组A[0:8,1:5],每个数组元素用相邻的4个字节存储,存储器按字节编址, 假设存储数组元素A[0,1]的第一个字节的地址是0,存储数组A的最后一个元素的第一个字 节的地址是(①)。若按行存储,则A[3,5]和 A[5,3]的第一个字节的地址是(②) 和(③)。若按列存储,则A[7,1]和A[2,4]的第一个字节的地址是(④)和(⑤)。【上海海运学院 1996 二、1 (5分)】 ①-⑤:A.28 B.44 C.76 D.92 E.108 F.116 G.132 H.176 I.184 J.188 7. 将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元 素A6665(即该元素下标i=66,j=65),在B数组中的位置K为()。供选择的答案: A. 198 B. 195 C. 197 【北京邮电大学 1998 二、5 (2分)】 8. 二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范圈 从1到10。从供选择的答案中选出应填入下列关于数组存储叙述中()内的正确答案。(1)存放A至少需要()个字节; (2)A的第8列和第5行共占()个字节; (3)若A按行存放,元素A[8,5]的起始地址与A按列存放时的元素()的起始地

数据结构--图的应用及其实现

实验六图的应用及其实现 (相关知识点:拓扑排序、关键路径、最小生成树和最短路径) 一、实验目的 1.进一步功固图常用的存储结构。 2.熟练掌握在图的邻接表实现图的基本操作。 3.理解掌握AOV网、AOE网在邻接表上的实现以及解决简单的应用问题。 二、实验内容 一>.基础题目:(本类题目属于验证性的,要求学生独立完成) [题目一]:从键盘上输入AOV网的顶点和有向边的信息,建立其邻接表存储结构,然后对该图拓扑排序,并输出拓扑序列. 试设计程序实现上述AOV网的类型定义和基本操作,完成上述功能。 测试数据:教材图7.28 [题目二]:从键盘上输入AOE网的顶点和有向边的信息,建立其邻接表存储结构,输出其关键路径和关键路径长度。试设计程序实现上述AOE网类型定义和基本操作,完成上述功能。 测试数据:教材图7.29 二>.简单应用题目:(ACM/ICPC训练题,本类题目属于设计性的,要求学生三人为一个团队,分工协作完成)) 【题目三】高速公路 描述 某国共有n个城市(n不超过200),有些城市之间直接有一条高速公路相连,高速公路都是双向的,总共有m条。每条高速公路都有自己的载重限制,即载重最大值。通过车辆的载重不能超过公路的载重限制。如今我们想了解的是,从某一起点城市出发,到达目标城市,车辆最多能带多重的货物。 输入 输入的第一行为两个整数n和m。以下有m行,每行三个整数描述一条公路,分别是首尾相连的城市以及载重限制。然后是一个整数k,即问题个数。接下来k行描述k个问题,每行两个整数表示起点城市和目标城市。问题数不超过一百。 输出

输出包括k行,每行对应一个问题,输出从起点到目标的最大载重量。如果两城市间无路径则输出-1。 样例输入 3 3 1 2 100 2 3 100 1 3 50 2 1 3 2 3 样例输出 100 100 【题目四】最短的旅程 描述 在Byteland有n个城市(编号从1到n),它们之间通过双向的道路相连。Byteland 的国王并不大方,所以,那里只有n -1条道路,但是,它们的连接方式使得从任意城市都可以走到其他的任何城市。 一天,starhder到了编号为k的城市。他计划从城市k开始,游遍城市m1,m2,m3……,mj(不一定要按这个顺序旅游)。每个城市mi都是不同的,并且,也与k不同。Starhder ——就像每一个旅行家一样,携带的钱总是有限的,所以,他要以最短的路程旅行完所有的城市(从城市k开始)。于是,他请你帮助计算一下,旅游完上述的城市最短需要多少路程。 输入

数据流图的构成与绘制步骤

第4章 1.简述需求分析中现行系统调查、新系统逻辑方案的提出等活动的详细内容、关键问题、主要成果及其描述方法。

系统调查 (1)组织机构的调查 了解组织的机构状况。即各部门的划分及其相互关系、人员配备、业务分工、信息流和物流的关系等等。组织机构状况可以通过组织结构图来反映。所谓组织机构图就是把组织分成若干部分,同时标明行政隶属关系,信息流动关系和其他关系。 (2)业务处理状况调查 为了弄清楚各部门的信息处理工作,哪些与系统建设有关,哪些无关,就必须了解组织的业务流程。系统分析人员应按照业务活动中信息流动过程,逐个调查所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清楚各个环节需要的信息内容、信息来源、去向、处理方法、提供信息的时间和信息形态等。 (3)现行系统的目标、主要功能和用户需求调查 只有充分了解现行系统的目标和功能以及用户需求,才能发现存在的问题,寻找解决问题的途径,也使新系统开发成为可能。 (4)信息流程调查 开发信息系统必须了解信息流程。业务流程虽然在一定程度上表达了信息的流动和存储情况,但仍含有物资、材料等内容。为了用计算机对组织的信息进行控制,必须舍去其他内容,把信息的流动、加工、存储等过程流抽象出来,得出组织中信息流的综合情况。描述这种情况的就是数据流图。 (5)数据及功能分析 有了数据流图后,要对图中所出现的数据和信息的属性进一步分析,包括编制数据词典、数据存储情况分析及使用情况分析。同时还要对数据流图中的各个加工逻辑进行描述。可用的工具有决策树、决策表、结构化语言等。 (6)系统运营环境分析 目前我国许多企业组织的信息系统处于停滞状态的主要原因是系统对环境环境的适 应性而非技术问题。因此,必须对系统的应用环境进行认真地调查分析,充分考虑各种可能发生的变化,以提高系统开发的质量。 新系统逻辑方案的提出 (1) 现行系统的薄弱环节 (2) 新系统的总体功能需求

数据结构实验报告--图实验

图实验 一,邻接矩阵的实现 1.实验目的 (1)掌握图的逻辑结构 (2)掌握图的邻接矩阵的存储结构 (3)验证图的邻接矩阵存储及其遍历操作的实现 2.实验内容 (1)建立无向图的邻接矩阵存储 (2)进行深度优先遍历 (3)进行广度优先遍历 3.设计与编码 MGraph.h #ifndef MGraph_H #define MGraph_H const int MaxSize = 10; template class MGraph { public: MGraph(DataType a[], int n, int e); ~MGraph(){ } void DFSTraverse(int v); void BFSTraverse(int v); private: DataType vertex[MaxSize]; int arc[MaxSize][MaxSize]; int vertexNum, arcNum; }; #endif MGraph.cpp #include using namespace std; #include "MGraph.h" extern int visited[MaxSize]; template MGraph::MGraph(DataType a[], int n, int e)

{ int i, j, k; vertexNum = n, arcNum = e; for(i = 0; i < vertexNum; i++) vertex[i] = a[i]; for(i = 0;i < vertexNum; i++) for(j = 0; j < vertexNum; j++) arc[i][j] = 0; for(k = 0; k < arcNum; k++) { cout << "Please enter two vertexs number of edge: "; cin >> i >> j; arc[i][j] = 1; arc[j][i] = 1; } } template void MGraph::DFSTraverse(int v) { cout << vertex[v]; visited[v] = 1; for(int j = 0; j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0) DFSTraverse(j); } template void MGraph::BFSTraverse(int v) { int Q[MaxSize]; int front = -1, rear = -1; cout << vertex[v]; visited[v] = 1; Q[++rear] = v; while(front != rear) { v = Q[++front]; for(int j = 0;j < vertexNum; j++) if(arc[v][j] == 1 && visited[j] == 0){ cout << vertex[j]; visited[j] = 1;

小学语文各年级学习知识结构图

小学语文各年级知识结构图 一年级 一、拼音 1.声母 2.韵母 (1)。单韵母 (2)复韵母 (3)前鼻音韵母 (4)后鼻音韵母 (5)特殊韵母 3.整体认读音节 4.大小字母 5声调 二、字 1.笔顺 2.识字 a。形近字 b.会意字 c.形声字 d.多音字 e.多义字 3.生字组词

1.反义词 2.量词 3.叠词(AABB式) 三、句 1.看拼音写句子 2.关联词 ……因为……所以…..、……一边……一边……3造句 …….像……、……..从……、……来……. 3.疑问句 四段 1.认识自然段. 2.在自然段前面加序号 五、口语交际 1看图 2.按顺序说 a.从上到下 b.从左到右 c.从中间到两边 d.从景到人 六积累

2.对子 3.儿童诗歌 4.谚语 二年级一字 1.识字 a。形近字 b.会意字 c.形声字 d.多音字 e.多义字 2.熟练识字方法 3.生字组词 二词 1.写 a看拼音写词语 b多音字组词 2词语搭配 3积累词语 a.四字词语 b.成语 三句

.- 1认识句子 a比喻句 b拟人句 c.反问句 3.写句子 a.运用标点符号写句子(逗号、句号、问号、感叹号。) b.联系上下文写句子 四段 1.背诵片段 2.理解段落内容 五口语交际 1制定计划 2.听别人讲 3.学会转述 六习作 1.培养写作兴趣 2.学写 把看到的,听到的,想到的记录下来 3.拓展 学写日记 七积累 1.儿歌

2.谚语 3.古典诗词 4.名言警句 三年级 一、字 1.学写钢笔字 a.练字必须有正确的姿势 b.练字必须有正确的执笔和运笔方法 c. 注意钢笔字的笔法 2.识字 a.形近字 b.多音字 3.生字组词 二词 1写 a看拼音写词语 b生字组词 c多音字组词 d近义词反义词 2.积累词语 a.成语 b.ABB式词语

数据结构图的存储结构及

数据结构图的存储结构及基本操作

1.实验目的 通过上机实验进一步掌握图的存储结构及基本操作的实现。 2.实验内容与要求 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。 3.数据结构设计 逻辑结构:图状结构 存储结构:顺序存储结构、链式存储结构 4.算法设计 #include #include #include #define MAX_VERTEX_NU M 20 typedef struct ArcNode { int adjvex; struct ArcNode *nextarc;

}ArcNode; typedef struct VNode { char data[2]; //顶点就设置和书上V1等等一样吧 ArcNode *firstarc; }VNode,AdjList[MAX _VERTEX_NUM]; typedef struct { AdjList vertices; int vexnum,arcnum; }ALGraph; typedef struct { int data[MAX_VERTEX_ NUM+10]; int front; int rear; }queue; int visited[MAX_VERTE X_NUM]; queue q; int main() { ALGraph G; int CreateUDG(ALGraph &G); int DeleteUDG(ALGraph &G); int InsertUDG(ALGraph &G); void BFSTraverse(ALGrap h G, int (*Visit)(ALGraph

初中语文知识结构图

初中语文知识结构图

初中语文知识结构图 3、汉字1、字音 2、字形 4、含义 5、色彩 9、词语6、近义词辨析 7、熟语 8、关联词语 12、标点符号10、点号 11、误用辨析 27、基础知识15、修辞13、常见修辞格 14、辞格辨 16、词类 20、语法17、短语 47 18、复句 初19、辨析修改病句 中21、作家作品语24、文学文化常识22、名篇名句文23、文化常识 26、语言表达——25、简明、连贯、得体28、常见实词 45、知识体系31、文章内容的归纳,中心的概括29、常见虚词 34、古代诗文阅读32、实词、虚词30、一词多义 33、文章内容的理解(翻译、断句) 35、文体知识 36、依据作品内容进行的合理推断 37、作文作品语言、表达技巧和形象的鉴赏 38、文学作品思想内容、作者态度的评价 44、现代文阅读39、重要句子的理解和解释 40、重点词语的理解 41、文中信息的分析和筛选 42、内容的归纳,中心的概括 43、结构的分析,思路的把握 46、中考复习 初中数学知识结构图 1、有理数(正数与负数) 2、数轴

6、有理数的概念3、相反数 4、绝对值 5、有理数从大到小的比较 7、有理数的加法、加法运算律 17、有理数8、有理数的减法 9、有理数的加减混合运算 10、有理数的乘法、乘法运算律 16、有理数的运算11、有理数的除法、倒数 12、有理数的乘方 13、有理数的混合运算 21、代数式 14、科学记数法、近似 数与有效数字 22、列代数式15、用计算器进行简单的数的运算 23、代数式的值18、单项式 27、整式的加减20、整式的概念19、多项式 24、合并同类项 25、去括号与添括号 26、整式的加减法 28、等式及其基本性质 29、方程和方程的解、解方程 198 32、一元一次方程30、一元一次方程及其解法 初31、一元一次方程的应用33、代入(消元)法 中35、二元一次方程组的解法34、加减(消元)法 数193 36、相关概念及性质 学数39、二元一次方程组37、三元一次方程组及其解法举例与38、一元方程组的应用40、一元一次不等式及其解法 代45、一元一次不等式43、一元一次不等式41、不等式的解集 数和一元一次不等式组44、一元一次不等式组42、不等式和它的基本性质 46、同底数幂的乘法、单项式的乘法 47、幂的乘方、积的乘方 51、整式的乘法48、单项式与多项式相乘 49、多项式的乘法 56、整式的乘除50、平方差与完全平方公式 52、多项式除以单项式 55、整式的除法53、单项式除以单项式 54、同底数幂的除法 57、提取公因式法 61、方法58、运用公式法 63、因式分解59、分组分解法 62、意义60、其他分解法66、含字母系数的一元 65、分式的乘除法——64、分式的乘除运算一次方

目前最完整的数据结构1800题包括完整答案 第十章 排序

第10章排序 一、选择题 1.某内排序方法的稳定性是指( )。【南京理工大学 1997 一、10(2分)】A.该排序算法不允许有相同的关键字记录 B.该排序算法允许有相同的关键字记录 C.平均时间为0(n log n)的排序方法 D.以上都不对 2.下面给出的四种排序法中( )排序法是不稳定性排序法。【北京航空航天大学 1999 一、 10 (2分)】 A. 插入 B. 冒泡 C. 二路归并 D. 堆积 3.下列排序算法中,其中()是稳定的。【福州大学 1998 一、3 (2分)】 A. 堆排序,冒泡排序 B. 快速排序,堆排序 C. 直接选择排序,归并排序 D. 归并排序,冒泡排序 4.稳定的排序方法是()【北方交通大学 2000 二、3(2分)】 A.直接插入排序和快速排序 B.折半插入排序和起泡排序 C.简单选择排序和四路归并排序 D.树形选择排序和shell排序 5.下列排序方法中,哪一个是稳定的排序方法?()【北方交通大学 2001 一、8(2分)】 A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序6.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序 B.归并排序 C.冒泡排序)。 【北京邮电大学 2001 一、5(2分)】 7.如果待排序序列中两个数据元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。()就是不稳定的排序方法。【清华大学 1998 一、3 (2分)】 A.起泡排序 B.归并排序 C.Shell排序 D.直接插入排序 E.简单选择排序 8.若要求排序是稳定的,且关键字为实数,则在下列排序方法中应选()排序为宜。 A.直接插入 B.直接选择 C.堆 D.快速 E.基数【中科院计算所 2000 一、5(2分)】 9.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。 A. 快速排序 B. 堆排序 C. 归并排序 D. 直接插入排序【中国科技大学 1998 二、4(2分)】【中科院计算所 1998 二、4(2分)】 10.下面的排序算法中,不稳定的是()【北京工业大学 1999 一、2 (2分)】 A.起泡排序 B.折半插入排序 C.简单选择排序 D.希尔排序 E.基数排序 F.堆排序。 11.下列内部排序算法中:【北京工业大学 2000 一、1 (10分每问2分)】A.快速排序 B.直接插入排序 C. 二路归并排序 D. 简单选择排序 E. 起泡排序F. 堆排序 (1)其比较次数与序列初态无关的算法是()(2)不稳定的排序算法是()(3)在初始序列已基本有序(除去n个元素中的某k个元素后即呈有序,k<

数据结构图实验报告

数据结构教程 上机实验报告 实验七、图算法上机实现 一、实验目的: 1.了解熟知图的定义和图的基本术语,掌握图的几种存储结构。 2.掌握邻接矩阵和邻接表定义及特点,并通过实例解析掌握邻接矩阵和邻接表的类型定义。 3.掌握图的遍历的定义、复杂性分析及应用,并掌握图的遍历方法及其基本思想。 二、实验内容: 1.建立无向图的邻接矩阵 2.图的xx优先搜索 3.图的xx优先搜索 三、实验步骤及结果: 1.建立无向图的邻接矩阵: 1)源代码: #include "stdio.h" #include "stdlib.h" #define MAXSIZE 30 typedefstruct{charvertex[MAXSIZE];//顶点为字符型且顶点表的长度小于MAXSIZE intedges[MAXSIZE][MAXSIZE];//边为整形且edges为邻近矩阵

}MGraph;//MGraph为采用邻近矩阵存储的图类型 voidCreatMGraph(MGraph *g,inte,int n) {//建立无向图的邻近矩阵g->egdes,n为顶点个数,e为边数inti,j,k; printf("Input data of vertexs(0~n-1): \n"); for(i=0;ivertex[i]=i; //读入顶点信息 for(i=0;iedges[i][j]=0; //初始化邻接矩阵 for(k=1;k<=e;k++)//输入e条边{}printf("Input edges of(i,j): "); scanf("%d,%d",&i,&j); g->edges[i][j]=1; g->edges[j][i]=1;}void main(){inti,j,n,e; MGraph *g; //建立指向采用邻接矩阵存储图类型指针 g=(MGraph*)malloc(sizeof(MGraph));//生成采用邻接举证存储图类型的存储空间}2)运行结果: printf("Input size of MGraph: "); //输入邻接矩阵的大小scanf("%d",&n); printf("Input number of edge: "); //输入邻接矩阵的边数scanf("%d",&e);

考研“数据结构”复习书传说中的1800题

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】4.一个算法应该是()。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和 C. 5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是()。【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D. 栈 9.以下数据结构中,哪一个是线性结构()?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 10.以下那一个术语与数据的存储结构无关?()【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表 11.在下面的程序段中,对x的赋值语句的频度为()【北京工商大学 2001 一、10(3分)】 FOR i:=1 TO n DO FOR j:=1 TO n DO x:=x+1; A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DO FOR j:=1 TO i DO

数据结构图的存储结构及基本操作

1.实验目的 通过上机实验进一步掌握图的存储结构及基本操作的实现。 2.实验内容与要求 要求: ⑴能根据输入的顶点、边/弧的信息建立图; ⑵实现图中顶点、边/弧的插入、删除; ⑶实现对该图的深度优先遍历; ⑷实现对该图的广度优先遍历。 备注:单号基于邻接矩阵,双号基于邻接表存储结构实现上述操作。 3.数据结构设计 逻辑结构:图状结构 存储结构:顺序存储结构、链式存储结构 4.算法设计 #include #include #include #define MAX_VERTEX_NUM 20 typedef struct ArcNode { int adjvex; struct ArcNode *nextarc; }ArcNode;typedef struct VNode { char data[2]; //顶点就设置和书上V1等等一样吧 ArcNode *firstarc; }VNode,AdjList[MAX_VERTEX_NUM]; typedef struct { AdjList vertices;

int vexnum,arcnum; }ALGraph; typedef struct { int data[MAX_VERTEX_NUM+10]; int front; int rear; }queue; int visited[MAX_VERTEX_NUM]; queue q; int main() { ALGraph G; int CreateUDG(ALGraph &G); int DeleteUDG(ALGraph &G); int InsertUDG(ALGraph &G); void BFSTraverse(ALGraph G, int (*Visit)(ALGraph G,ArcNode v)); int PrintElement(ALGraph G,ArcNode v); void menu(); void depthfirstsearch(ALGraph *g,int vi); void travel(ALGraph *g); void breadfirstsearch(ALGraph *g); int i; G.arcnum = G.vexnum = 0; while(1) { menu(); do { printf ( "请输入要进行的操作\n" ); scanf ("%d",&i); if (i<1||i>6) printf("错误数字,请重新输入\n"); }while (i<1||i>6); switch (i) { case 1: CreateUDG(G);

数据结构1800试题-第5章 数组和广义表 - 答案

第五章数组和广义表答案 部分答案解释如下。 1. 错误。对于完全二叉树,用一维数组作存储结构是效率高的(存储密度大)。 4. 错误。数组是具有相同性质的数据元素的集合,数据元素不仅有值,还有下标。因此,可以说数祖是元素值和下标构成的偶对的有穷集合。 5. 错误。数组在维数和界偶确定后,其元素个数已经确定,不能进行插入和删除运算。 6. 错误。稀疏矩阵转置后,除行列下标及行列数互换外,还必须确定该元素转置后在新三元组中的位置。 8. 错误。广义表的取表尾运算,是非空广义表除去表头元素,剩余元素组成的表,不可能是原子。 9. 错误。广义表的表头就是广义表的第一个元素。只有非空广义表才能取表头。 10. 错误。广义表中元素可以是原子,也可以是表(包括空表和非空表)。 11. 错误。广义表的表尾,指去掉表头元素后,剩余元素所组成的表。 三、填空题 1. 顺序存储结构 2.(1)9572(2)1228 3.(1)9174(2)8788 4. 1100 5. 1164 公式:LOC(a ijk)=LOC(a000)+[v2*v3*(i-c1)+v3*(j-c2)+(k-c3)]*l (l为每个元素所占单元数) 6. 232 7. 1340 8. 1196 9. 第1行第3列 10. (1)270 (2)27 (3)2204 11. i(i-1)/2+j (1<=i,j<=n) 12. (1)n(n+1)/2 (2)i(i+1)/2 (或j(j+1)/2) (3)i(i-1)/2+j (4)j(j-1)/2+i (1<=i,j<=n) 13. 1038 三对角矩阵按行存储:k=2(i-1)+j (1<=i,j<=n) 14. 33 (k=i(i-1)/2+j) (1<=i,j<=n) 15. 非零元很少(t<

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