我正在解决这个问题:
Gaedel教授编写了一个程序,声称实现了Dijkstra算法。该程序为V中的每个顶点v生成v.d和v.π。请提供一种O.(V + E)时间复杂度的算法来检查教授程序的输出。它应确定d和π属性是否与某些最短路径树的属性匹配。您可以假设所有边权重均为非负数。
v.d是从起始节点到v的最短距离。 v.π是从起始节点到v的最短路径上的前驱节点
我的想法是: 对于每个顶点(i),将i.d与(i.π).d进行比较。如果i的前驱节点具有更大的d值,则我们不能有最短路径树。
我相信这可以检查教授的输出是否不是最短路径树,但我认为没有更多信息的情况下无法确认输出是否为最短路径树。
我在正确的轨道上吗?