一个有向图的邻接表和逆邻接表中结点的个数可能不等。
T OR F
答案: 错误
原因:有向图邻接表出度必定有入度 定点必然守恒 ,定点数一定相等
有n-1条边的图肯定都是生成树。
T OR F
答案:错误
原因:非连通图无法构成树
无向图的邻接矩阵可用一维数组存储。
T OR F
答案:正确
原因: 二维数组可转化为一维数组
对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表向量的大小为(A)。
A.n
B.n+1
C.n-1
D.n+e
原因:题目表达不清晰,n个顶点和e条边用邻接表,表头向量大小为n,邻接表表结点为2e (一表边连接两个顶点,因此两边都会有表结点因此2e)
以下算法的功能是()。
A.从顶点i出发进行深度优先遍历
B.从顶点i出发进行广度优先遍历
C.输出顶点i的各邻接点
D.输出从顶点i出发到各顶点的路径
void graph1( adjmatrix GA, int i, int n, int *visited)
{
int k, j; Queue q;
cout<<i<<‘ ‘; visited[i]= 1;
InitQueue(q);
EnQueue (q, i);
while ( !EmptyQueue(q) ) {
k= OutQueue (q);
for( j=0; j<n; j++) {
if ( GA[k][j] != 0 && GA[k][j] != MaxValue && !visited[j] ) {
cout<<j<<‘ ‘; visited[j] = 1;
EnQueue (q, j);
}
}
}
}
深度优先遍历可以用栈和递归(个人理解递归也是用堆栈的思想)来遍历
广度优先遍历可以用队列来遍历
要连通具有n个顶点的有向图,至少需要( B)条边。
A.n-1
B.n
C.n+1
D.2n
原因:这题题目不清晰导致答案存在歧义,有向图存在强连通图,也存在若连通图,强连通必须形成环n条边 ,弱连通n-1条边,这题默认强连通的立场。
从邻接矩阵
可以看出,如果是有向图该图共有(B ) 条弧。
A.5
B.4
C.3
D.2
E.以上答案均不正确
原因:邻接矩阵无论出度,入度,都可以表示。邻接表需要两张表来表示。
使用 Dijkstra 算法求下图中从顶点 1 到其余各顶点的最短路径,将当前找到的从顶点 1 到顶点 2、3、4、5 的最短路径长度保存在数组 dist 中,求出第二条最短路径后,dist 中的内容更新为:
A.26、3、14、6
B.25、3、14、6
C.21、3、14、6
D.15、3、14、6
题解: