资源描述
第七章 图一、选择题1图中有关路径的定义是( )。【北方交通大学 2001 一、24 (2分)】A由顶点和相邻顶点序偶构成的边所形成的序列 B由不同顶点所形成的序列C由不同边所形成的序列 D上述定义都不是2设无向图的顶点个数为n,则该图最多有( )条边。An-1 Bn(n-1)/2 C n(n+1)/2 D0 En2【清华大学 1998 一、5 (2分)】【西安电子科技大 1998 一、6 (2分)】【北京航空航天大学 1999 一、7 (2分)】3一个n个顶点的连通无向图,其边的个数至少为( )。【浙江大学 1999 四、4 (4分)】An-1 Bn Cn+1 Dnlogn;4要连通具有n个顶点的有向图,至少需要( )条边。【北京航空航天大学 2000 一、6(2分)】An-l Bn Cn+l D2n5n个结点的完全有向图含有边的数目()。【中山大学 1998 二、9 (2分)】An*n n(n) Cn2 Dn*(nl)6一个有n个结点的图,最少有( )个连通分量,最多有( )个连通分量。A0 B1 Cn-1 Dn【北京邮电大学 2000 二、5 (20/8分)】7在一个无向图中,所有顶点的度数之和等于所有边数( )倍,在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( )倍。【哈尔滨工业大学 2001 二、3 (2分)】A1/2 B2 C1 D48用有向无环图描述表达式(A+B)*(A+B)/A),至少需要顶点的数目为( )。【中山大学1999一、14】A5 B6 C8 D9 9用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是( )。A逆拓扑有序 B拓扑有序 C无序的 【中科院软件所 1998】10下面结构中最适于表示稀疏无向图的是( ),适于表示稀疏有向图的是( )。A邻接矩阵 B逆邻接表 C邻接多重表 D十字链表 E邻接表 【北京工业大学 2001 一、3 (2分)】11下列哪一种图的邻接矩阵是对称矩阵?( )【北方交通大学 2001 一、11 (2分)】A有向图 B无向图 CAOV网 DAOE网12 从邻接阵矩 可以看出,该图共有()个顶点;如果是有向图该图共有() 条弧;如果是无向图,则共有()条边。【中科院软件所 1999 六、2(3分)】A9 B3 C6 D1 E以上答案均不正确A5 B4 C3 D2 E以上答案均不正确A5 B4 C3 D2 E以上答案均不正确13当一个有N个顶点的图用邻接矩阵A表示时,顶点Vi的度是( )。【南京理工大学1998一、4(2分)】A B C D+ 14用相邻矩阵A表示图,判定任意两个顶点Vi和Vj之间是否有长度为m 的路径相连,则只要检查( )的第i行第j列的元素是否为零即可。【武汉大学 2000 二、7】AmA BA CAm DAm-115. 下列说法不正确的是( )。【青岛大学 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分)】Aa,b,e,c,d,f Ba,c,f,e,b,d Ca,e,b,c,f,d Da,e,d,f,c,b17. 设图如右所示,在下面的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 cA5个 B4个 C3个 D2个 第17题图 第18题图18.下图中给出由7个顶点组成的无向图。从顶点1出发,对它进行深度优先遍历得到的序列是( ),而进行广度优先遍历得到的顶点序列是( )。【中科院软件所 1999 六、2-(1)(2分)】A1354267 B1347652 C1534276 D1247653 E以上答案均不正确A1534267 B1726453 Cl354276 D1247653 E以上答案均不正确 19下面哪一方法可以判断出一个有向图是否有环(回路):【东北大学 2000 4、2(4分)】A深度优先遍历 B. 拓扑排序 C. 求最短路径 D. 求关键路径20. 在图采用邻接表存储时,求最小生成树的 Prim 算法的时间复杂度为( )。A. O(n) B. O(n+e) C. O(n2) D. O(n3)【合肥工业大学 2001 一、2 (2分)】21. 下面是求连通网的最小生成树的prim算法:集合VT,ET分别放顶点和边,初始为( 1 ),下面步骤重复n-1次: a:( 2 );b:( 3 );最后:( 4 )。【南京理工大学 1997 一、11_14 (8分)】(1)AVT,ET为空 BVT为所有顶点,ET为空 CVT为网中任意一点,ET为空 DVT为空,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)AET 中为最小生成树 B不在ET中的边构成最小生成树 CET中有n-1条边时为生成树,否则无解 DET中无回路时,为生成树,否则无解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分)】AO(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的拓扑序列是( )。AV1,V3,V4,V6,V2,V5,V7 BV1,V3,V2,V6,V4,V5,V7CV1,V3,V4,V5,V2,V6,V7 DV1,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之前,则下列情形不可能出现的是( )。 AG中有弧 BG中有一条从Vi到Vj的路径 CG中没有弧 DG中有一条从Vj到Vi的路径 【南京理工大学 2000 一、9 (1.5分)】29. 在用邻接表表示图时,拓扑排序算法时间复杂度为( )。A. O(n) B. O(ne) 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=。( )【南京航空航天大学 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 算法求解各顶点的最短路径时,每个表示两点间路径的pathk-1I,J一定是pathk 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分)】42AOV网的含义是以边表示活动的网。( )【南京航空航天大学 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分)】7G是一个非连通无向图,共有28条边,则该图至少有_个顶点。【西安电子科技大 2001软件 一、8 (2分)】8. 在有n个顶点的有向图中,若要使任意两点间可以互相到达,则至少需要_条弧。【合肥工业大学 2000 三、8 (2分)】9在有n个顶点的有向图中,每个顶点的度最大可达_。【武汉大学 2000 一、3】10设G为具有N个顶点的无向连通图,则G中至少有_条边。【长沙铁道学院 1997 二、2 (2分)】11n个顶点的连通无向图,其边的条数至少为_。【哈尔滨工业大学 2000 二、2(1分)】12如果含n个顶点的图形形成一个环,则它有_棵生成树。【西安电子科技大学 2001软件 一、2 (2分)】13N个顶点的连通图的生成树含有_条边。【中山大学 1998 一、9 (1分)】14构造n个结点的强连通图,至少有_条弧。【北京轻工业学院 2000 一、4(2分)】15有N个顶点的有向图,至少需要量_条弧才能保证是连通的。【西南交通大学 2000 一、3】16右图中的强连通分量的个数为( )个。【北京邮电大学 2001 二、5 (2分)】17N个顶点的连通图用邻接矩阵表示时,该矩阵至少有_个非零元素。【中科院计算所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到顶点3的最短路径长度是_,经过的中间顶点是_。【南京理工大学 1998 三、6 (4分)】38. 上面的图去掉有向弧看成无向图则对应的最小生成树的边权之和为_。【南京理工大学 1998 三、7(4分)】39设有向图有n个顶点和e条边,进行拓扑排序时,总的计算时间为_。【西安电子科技大学 1999软件 一、7 (2分)】【武汉大学 2000 一、7】40AOV网中,结点表示_,边表示_。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=ARRAYvtxptrOF vexnode; 本算法是实现图的深度优先遍历的非递归算法。其中,使用一个顺序栈stack。栈顶指针为top。visited为标志数组。PROC dfs(g:adjlist;v0:vtxptr); top=0; write(v0); visitedv0:=ture; p:=gv0.firstarc; WHILE (top0)OR(pNIL)DOWHILE(1)_DOv:=p.adjvex;IF(2)_ THEN p:=p.nextarcELSE write(v); visitedv:=true; top:=top+1; stacktop:=p; (3)_ IF top0 THENp:=stacktop; 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=ARRAYvtxptr0 OF vexnode ;VAR ga:graph; n: integer; visited: ARRAYvtxptr0 OF boolean ; FUNC order (g: graph; v: char): vtxptr; (1)_; i:=n;WHILE gi.vexdatav DO i:=i-1;order:=i;ENDF;PROC creat(var g: graph); readln(n,e);FOR i:= 1 TO n DO readln(gi.vexdata); gi.firstin :=NIL ; gi.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:=jp.nextj:= _(2)_; _(3)_ :=p;p.nexti:=: _(4)_; _(5)_ :=p;ENDP;FUNC firstadj(g:graph; v:char): vtxptr0; i:=order(g,v); p:=gi.firstout; IF pNIL 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(pNIL ) AND (p.vexjj) DO(8)_; IF (9)_AND(10)_THEN nextadj:=p.nexti.vexj ELSE nextadj:=0;ENDF;PROC dfs(g:graph; v0:char); write(v0:2); visitedorder(g,v0):=true; w:=(11)_; WHILE w0 DO IF (12)_ THEN dfs(g,gw.vexdata); w:=(13)_;ENDP;PROC traver(g:graph);FOR i:=1 TO n DO visitedi:=false; FOR i:=1 TO n DO IF NOT visitedi THEN dfs(g,gi.vexdata);ENDP;BEGINcreat(ga); traver(ga);END. 【北方交通大学 1999 三 (20分)】46n个顶点的有向图用邻接矩阵array表示,下面是其拓扑排序算法,试补充完整。注:(1)图的顶点号从 0开始计; (2)indegree 是有n个分量的一维数组,放顶点的入度;(3)函数 crein 用于算顶点入度; (4)有三个函数push(data),pop( ),check( )其含义为数据 data进栈,退栈和测试栈是否空(不空返回1,否则0)。 crein( array ,indegree,n) for (i=0;in;i+) indegreei= (1)_) for(i=0,in;i+) for (j=0;jn; j+) indegreei+=array(2)_(3)_; topsort (array,indegree,n) count= (4)_) for (i=0;in;i+) if (5)_) push(i) while (check( ) vex=pop( ); printf(vex); count+; for (i=0;in;i+) k=array(6)_ if (7)_ ) indegreei-; if (8)_ ) push(i); if( countn) printf(“图有回路”); 【南京理工大学 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 chi.count:= 0; chi.head:=NIL END; writeln(input edges :); FOR j:= 1 TO m DO BEGIN write( j :3 , : ) ; readln( u , v ) ; new( p ) ; chv.count:=chv.count+1; p.num:=v; (1) _ ; (2) _; ENDEND ;PROCEDURE topol ; VAR i, j, k: integer; t: nodeptr ; BEGIN top:= 0 ; FOR i := 1 TO n DO IF chi.count=0 THEN BEGIN chi.count := top ;top := i END; i:= 0 ; WHILE (3) _ DO BEGIN (4) _; (5) _ ; write(j : 5) ;i:= i + 1 ;t:=chj.head ; WHILE tNIL DO BEGIN k := t.num ; chk.count:=chk.count1 ; IF chk.count=0 THEN BEGIN chk.count:=top; top:=k END; (6) _ ; END END ; writeln; IF in THEN writeln (the network has a cycle!) END;BEGIN readdata ; writeln (output topol order : ); topolEND. 【复旦大学 1995 三 (18分)】V1V2V3V4V5V648如下为拓扑排序的C程序,(1)列出对右图执行该程序后的输出结果。(2)在程序空白处填上适当语句。void topsort(hdnodes graph ,int n)int i,j,k,top; node_pointer ptr ; top=-1; for (i=0; in; i+) if (!graphi.count)graphi.count=top; top=i; for (i=0; ilink)k=ptr-vertex; graphk.count-; if(3)_) graphk.count=top; top=k; 【浙江大学 2000 六(15分)】四、 应用题1(1)如果G1是一个具有n个顶点的连通无向图,那么G1最多有多少条边?G1最少有多少条边?(2)如果G2是一个具有n个顶点的强连通有向图,那么G2最多有多少条边?G2最少有多少条边?(3)如果G3是一个具有n个顶点的弱连通有向图,那么G3最多有多少条边?G3最少有多少条边? 【复旦大学 1997 一 (9分)】2n个顶点的无向连通图最少有多少条边?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, , k9R=, , , , , , , , (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假定(V,E)是有向图,V1,2,,N,N1,G以邻接矩阵方式存储,G的邻接矩阵为A,即是一个二维数组,如果i到j有边,则Ai,j=1,否则Ai,j=0,请给出一个算法,该算法能判断G是否是非循环图(即G中是否存在回路),要求算法的时间复杂性为O(n*n)。 【吉林大学 1998 三(16分)】14 首先将如下图所示的无向图给出其存储结构的邻接链表表示,然后写出对其分别进行深度,广度优先遍历的结果。 【天津大学 1999 一】15下面的邻接表表示一个给定的无向图 (1)给出从顶点v1开始,对图G用深度优先搜索法进行遍历时的顶点序列;(2)给出从顶点v1开始,对图G用广度优先搜索法进行遍历时的顶点序列。【复旦大学1998六(10分)36758942131057842169 15题图 14题图 16题图16给出图G:(1)画出G的邻接表表示图;(2)根据你画出的邻接表,以顶点为根,画出G的深度优先生成树和广度优先生成树。【南开大学 1997 五 (14分)】17设G=(V,E)以邻接表存储,如图所示,试画出图的深度优先和广度优先生成树。【北京轻工业学院 1998 八 (6分)】18对一个图进行遍历可以得到不同的遍历序列,那么导致得到的遍历序列不唯一的因素有哪些?【北京航空航天大学 19
展开阅读全文