填空题(1998年中国科学技术大学)

n个顶点的连通图用邻接矩阵表示时,该矩阵至少有__________个非零元素。

答案解析

2(n-1)

【解析】

所谓连通图一定是无向图,有向的叫做强连通图。

连通n个顶点,至少只需要n-1条边就可以了,或者说就是生成树。

由于无向图的每条边同时关联两个顶点,因此邻接矩阵中每条边被存储了两次(也就是说是对称矩阵),因此至少有2(n-1)个非零元素。

讨论

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

对于下面的有向图,其邻接矩阵是一个【 】的矩阵。

对于下面的有向图,采用邻接链表存储时,顶点 0的表结点个数为2,顶点3的表结点个数为0,顶点1的表结点个数为【 】。

某图G的邻接矩阵如下所示。以下关于该图的叙述中,错误的是【 】

设某无向图的顶点个数为n,则该图最多有______条边;若将该图用邻接矩阵存储,则矩阵的行数和列数分别为______。

某图G的邻接表如下所示。以下关于图G的叙述中,正确的是【 】。

某有向图G及其邻接矩阵如下所示。以下关于图的邻接矩阵存储的叙述中,错误的是【 】。

对于下图,若采用邻接矩阵存储,则矩阵中的非0元素数目为【 】。

已知某带权图G的邻接表如下所示,其中表结点的结构为:以下关于该图的叙述中,正确的是【 】。

对于正整数n ,输出其和等于n且满足以下限制条件的所有正整数的和式,组成和式的数字自左至右构成一个非递增的序列。如 n = 4 ,程序输出为:4 = 44 = 3 + 14 = 2 + 24 = 2 + 1 + 1 4 = 1 + 1 + 1 + 1test 是实现该功能的 C 程序段,请将未完成的部分补足,使之完整。test 函数为一递归函数,参数 n 为被分解和式的数, k 为当前的分解深度。算法思想是对 n 的所有合理的和式分解,将分解出的数(称为和数)存于二数组 a[]中。当其中一个分解己不再需要进一步进行时,即找到一个解,将存于 a[] 中的一个完整和式的和数输出。当还需要进一部分解时,以要进一部分解的数及分解深度为参数,递归调用 test 函数。#define MAXN 100 int a[MAXN]; test(int n,int k){     int i,j;     for (j=__________;j>=1;j--){         a[k]=j;          if (__________){             printf ( "%d = %d" , a[0],a[l]);             for (i = 2 ; i < = k ; i + + )                 printf ( " + % d " , a[i]);             printf ( "  n " );         }else test(__________,k + l );     } }

对于给定的n个元素,可以构造的逻辑结构有__________、__________、__________和__________4种。

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

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

图的遍历方式有__________和__________两种。

在n个结点的无向图中,若边数>n-1,则该图必是连通图。

如果G是一个具有n个顶点的连通无向图,那么G最多有__________条边,最少有__________条边。

已知有向图G采用邻接矩阵存储,其定义如下:typedef struct{//图的定义 int numberVertices,numEgges;//图中实际的顶点数和边数 char verticesList[maxV];//顶点表 int edge[maxV][maxV];//邻接矩阵}MGraph;将图中出度大于入度的顶点称为K顶点,如图,a和b都是K顶点,设计算法 int printVertices(MGraph G)对给定任意非空有向图G,输出G中所有K顶点,并返回K顶点的个数。(1)给出算法的设计思想。(2)根据算法思想,写出C/C++描述,并注释。

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

已知无向连通图 G 中各边的权值均为 1,下列算法中一定能够求出图 G 中从某顶点到其余各个顶点最短路径的是【 】Ⅰ.普利姆算法;Ⅱ.克鲁斯卡尔算法;Ⅲ.图的广度优先搜索

下图所示的非确定有限自动机(s0为初态,s3为终态)可识别字符串【 】。