第 6 章 图 2005-07-14 第 6 章 图 课后习题讲解 1. 填空题 ⑴ 设无向图G 中顶点数为 n,则图G 至少有( )条边,至多有( )条边;若 G 为有向图,则至少有( )条边,至多有( )条边。 【解答】0,n(n-1)/2,0,n(n-1) 【分析】图的顶点集合是有穷非空的,而边集可以是空集;边数达到最多的图称为完全图,在完全图中,任意两个顶点之间都存在边。 ⑵ 任何连通图的连通分量只有一个,即是( )。 【解答】其自身 ⑶ 图的存储结构主要有两种,分别是( )和( )。 【解答】邻接矩阵,邻接表 【分析】这是最常用的两种存储结构,此外,还有十字链表、邻接多重表、边集数组等。 ⑷ 已知无向图G 的顶点数为 n,边数为 e,其邻接表表示的空间复杂度为( )。 【解答】O(n+e) 【分析】在无向图的邻接表中,顶点表有 n 个结点,边表有 2e 个结点,共有 n+2e 个结点,其空间复杂度为O(n+2e)=O(n+e)。 ⑸ 已知一个有向图的邻接矩阵表示,计算第j 个顶点的入度的方法是( )。 【解答】求第j 列的所有元素之和 ⑹ 有向图G 用邻接矩阵 A[n][n]存储,其第i 行的所有元素之和等于顶点 i 的( )。 【解答】出度 ⑺ 图的深度优先遍历类似于树的( )遍历,它所用到的数据结构是( );图的广度优先遍历类似于树的( )遍历,它所用到的数据结构是( )。 【解答】前序,栈,层序,队列 ⑻ 对于含有 n 个顶点 e 条边的连通图,利用 Prim 算法求最小生成树的时间复杂度为( ),利用 Kruskal算法求最小生成树的时间复杂度为( )。 【解答】O(n2),O(elog2e) 【分析】Prim 算法采用邻接矩阵做存储结构,适合于求稠密图的最小生成树;Kruskal 算法采用边集数组做存储结构,适合于求稀疏图的最小生成树。 ⑼ 如果一个有向图不存在( ),则该图的全部顶点可以排列成一个拓扑序列。 【解答】回路 ⑽ 在一个有向图中,若存在弧、、,则在其拓扑序列中,顶点vi, vj, vk 的相对次序为( )。 【解答】vi, vj, vk 【分析】对由顶点vi, vj, vk 组成的图进行拓扑排序。 2. 选择题 ⑴ 在一个无向图中,所有顶点的度数之和等于所有边数的( )倍。 A 1/2 B 1 C 2 D 4 【解答】C 【分析】设无向图中含有n 个顶点e 条边,则 。 ⑵ n 个顶点的强连通图至少有( )条边,其形状是( )。 A n B n+1 C n-1 D n× (n-1) E 无回路...