(1)对于连通的无向图,采用Dijkstra最短路径算法,在Dist数组中能否给 出足够形成一棵支撑树的信息? (2)是否能给出一棵最小支撑树?请证明你的结论或举反例说明。 (提示:Dist数组用来记录当前每个顶点所对应的最短特殊路径长度。)
时间: 2023-02-09 09:53:53 浏览: 100
设有一有向图为g(vdoc.docx
对于连通的无向图,采用 Dijkstra 最短路径算法,在 Dist 数组中不能给出足够形成一棵支撑树的信息。
证明:Dijkstra 算法是基于贪心策略的最短路径算法,它每次求出一个顶点的最短路径后就将其标记为已经计算过的,并不考虑与其相连的边。因此,在 Dist 数组中并不包含所有的边的信息,也就不能形成一棵支撑树。
同时,也不能给出一棵最小支撑树。证明:最小支撑树是指构成一张图的所有边中,最小生成树所包含的边,而 Dijkstra 算法只能求出最短路径,并不能求出最小生成树。因此,也不能给出最小支撑树。
举反例说明:假设有一张无向图如下所示:
1---2---3
\ /
4
对于顶点 1,采用 Dijkstra 算法求出的最短路径信息存储在 Dist 数组中,即 Dist[2]=1,Dist[3]=2,Dist[4]=1。但是,根据这些信息是不能组成一棵支撑树的。
阅读全文