最短路和拓扑排序知识点
1、在一个有权无向图中,如果顶点b到顶点a的最短路径长度是10,顶点c与顶点b之间存在一条长度为3的边。(c与a的最短路径长度不超过13;c与a的最短路径不小于7)
2、我们用一个有向图来表示航空公司所有航班的航线。最适合解决找给定两城市间最经济的飞行路线问题是Dijkstra算法。
3、数据结构中Dijkstra算法用来解决最短路径问题。
4、使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:5,2,3,6,4.
5、最短路径的生成算法可用Dijkstra算法。
6、求图的最短路径可以用Dijkstra算法。
7、Dijkstra算法是按长度递增的顺序求出图中某顶点到其余顶点的最短路径方法求出图中从某顶点到其余顶点的最短路径的。
8、使用迪杰斯特拉(Dijkstra)算法求下图中从顶点1到其他各顶点的最短路径,依次得到的各最短路径的目标顶点是:2,4,3,6,5,7
9、试利用 Dijkstra 算法求下图中从顶点 A 到其他顶点的最短距离及对应的路径。ACFEDBG
10、数据结构中Dijkstra算法用来解决最短路径问题。
11、对含有n个顶点、e条边的带权图求最短路径的Dijkstra算法的时间复杂度为O(n^{2})。
12、判定一个有向图是否存在回路除了可以利用拓扑排序方法外,还可以利用深度优先遍历算法。
13、n个顶点e条弧的有向图采用邻接表存储,则拓扑排序算法的时间复杂度是O(n+e)。
14、在TopSort函数中,如果外循环还没结束,就已经找不到“未输出的入度为0的顶点”,则说明图中必定存在回路。
15、已知无向连通图 G 中各边的权值均为 1。一定能够求出图 G 中从某顶点到其余各顶点最短路径的是:图的广度优先搜索算法。
16、使用 Dijkstra 算法求下图中从顶点 1 到其余各顶点的最短路径,将当前找到的从顶点 1 到顶点 2、3、4、5 的最短路径长度保存在数组 dist 中,求出第二条最短路径后,dist 中的内容更新为:21,3,14,6.
17、对下图进行拓扑排序,可以得到不同的拓扑序列的个数是:3.
18、下图为一个AOV网,其可能的拓扑有序序列为:ABCEDF
19、修改递归方式实现的图的深度优先搜索(DFS)算法,将输出(访问)顶点信息的语句移动到退出递归前(即执行输出语句后立即退出递归)。采用修改后的算法遍历有向无环图 G,若输出结果中包含 G 中的全部顶点,则输出的顶点序列是 G 的:逆拓扑有序序列。
20、给定如下有向图,该图的拓扑有序序列的个数是:1.
21、求解最短路径的Floyd算法的时间复杂度为O(nnn)。
22、若要求在找到从S
到其他顶点最短路的同时,还给出不同的最短路的条数,我们可以将Dijkstra算法略作修改,增加一个count[]
数组:count[V]
记录S
到顶点V
的最短路径有多少条。则count[V]
应该被初始化为:count[S]=1;
对于其他顶点V
则令count[V]=0。
23、
算法:对如下所示的有向图进行拓扑排序,得到的拓扑序列可能是:3,1,4,2,6,5.
24、Dijkstra
typedef struct GNode *PtrToGNode;
struct GNode{int Nv; /* Number of vertices */int Ne; /* Number of edges */WeightType G[MaxVertexNum][MaxVertexNum]; /* adjacency matrix */
};
typedef PtrToGNode MGraph;void Dijkstra( MGraph Graph, int dist[], int path[], Vertex S )
{int collected[MaxVertexNum];Vertex V, W;for ( V=0; V<Graph->Nv; V++ ) {dist[V] = Graph->G[S][V];path[V] = -1;collected[V] = false;}dist[S] = 0;collected[S] = true;while (1) {V = FindMinDist( Graph, dist, collected );if ( V==ERROR ) break;collected[V] = true;for( W=0; W<Graph->Nv; W++ )if ( collected[W]==false && Graph->G[V][W]<INFINITY ) {if ( dist[W]>dist[V]+Graph->G[V][W] ) {dist[W] = dist[V]+Graph->G[V][W];path[W] = V;}}} /* end while */
}