判断题
1、在一个有权无向图中,若b
到a
的最短路径距离是12,且c
到b
之间存在一条权为2的边,则c
到a
的最短路径距离一定不小于10。T
2、Kruskal 算法是通过每步添加一条边及其相连的顶点到一棵树,从而逐步生成最小生成树。F
克鲁斯卡尔算法查找最小生成树的方法是:将连通网中所有的边按照权值大小做升序排序,从权值最小的边开始选择,只要此边不和已选择的边一起构成环路,就可以选择它组成最小生成树。对于 N 个顶点的连通网,挑选出 N-1 条符合条件的边,这些边组成的生成树就是最小生成树。
并不一定每步添加的边和点能加到那棵树上,下次找的边和点并不从某固定起点往下继续
3、Prim 算法是通过每步添加一条边及其相连的顶点到一棵树,从而逐步生成最小生成树。T
对于包含 N 个顶点的连通网,普里姆算法每次从连通网中找出一个权值最小的边,这样的操作重复 N-1 次,由 N-1 条权值最小的边组成的生成树就是最小生成树。
从任意起点开始寻找,然后以此起点开始依据条件添加边和点,从始至终是一棵树
选择题
1、对于一个具有n个顶点和e条边的无向图,若采用邻接表表示,则表向量的大小为()。
A.n
B.n+1
C.n-1
D.n+e
2、我们用一个有向图来表示航空公司所有航班的航线。下列哪种算法最适合解决找给定两城市间最经济的飞行路线问题?
A.Dijkstra算法
B.Kruskal算法
C.深度优先搜索
D.拓扑排序算法
3、数据结构中Dijkstra算法用来解决哪个问题?
A.关键路径
B.最短路径
C.拓扑排序
D.字符串匹配
4、任何一个带权无向连通图的最小生成树——
A.是唯一的
B.是不唯一的
C.有可能不唯一
D.有可能不存在
5、给定有权无向图的邻接矩阵如下,其最小生成树的总权重是:
A.20
B.22
C.8
D.15
6、使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:
A.5, 2, 3, 4, 6
B.5, 2, 3, 6, 4
C.5, 2, 4, 3, 6
D.5, 2, 6, 3, 4
7、以下算法的功能是()。
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);
}
}
}
}
A.从顶点i出发进行深度优先遍历
B.从顶点i出发进行广度优先遍历
C.输出顶点i的各邻接点
D.输出从顶点i出发到各顶点的路径
8、任何一个无向连通图的最小生成树()。
A.一定有多棵
B.可能不存在
C.有一棵或多棵
D.只有一棵