浅谈为什么最短路径中的路径还原只能用prev前驱节点来记录

原创 2015年11月21日 11:34:08



在做题过程中,想过,既然前驱节点可以记录路径,那么后继能不能呢。


那么对于我这种逻辑感不强烈的人,只能动手做了。


在用后继的方式后,将每个点的后继一一的输出后发现了问题,


是这样的,因为在图中,可能一个点所连接的两条边都可能符合条件,比如 1->2, 1->3,2->3这样简单的一个图,如果1->2,1->3的路径都是最短的,那么在更新过程中,1的后继先是2,后来又会变成3,这样,1->2这条边将还原不出来。

那么为什么前驱可以呢,

原因在于在遍历过程中会判断下一个点是否被使用,如果没被使用才会参与运算,这样保证了,某一个点的前驱只更新了一次。而若是后继,则一个点的后继的值至少是更新一次,如果更新大于1次,则先前的点,就无法被还原



版权声明:虽然为本人原创,但是写得真是渣,想转就转,反正我也不是鸣人。

所有节点对最短路径 超时 优先队列 + dijkstra + 遍历前驱子图

贴代码在此,有待后续改进。 #include #include #include #include #include #include #include using namespace std; ...

算法导论 第二十五章 所有节点对的最短路径问题

基于单源最短路径问题的讨论,解决所有最短路径问题,对每个节点求其最短路径: 25.1 最短路径和矩阵乘法...

算法导论 所有节点对的最短路径

本章主要讲述: 1.Floyd-Warshall算法:求解任意两点间的最短距离,时间复杂度为O(n^3)。  (1)使用条件&范围:通常可以在任何图中使用,包括有向图、带负权边的图。  (2)弗洛伊德...

图的所有节点对之间的最短路径—Floyd算法(C++)

Dijkstra算法之后是Floyd算法 Dijkstra算法是求单源最短路径(即固定起点,不固定终点) Floyd算法是求任意点对之间的最短路径(起点和终点都任意)Floyd算法也叫Floyd-...

算法导论笔记:25所有节点对的最短路径问题

本章考虑在给定的有向加权图G=(V, E),对于所有的节点u,v∈V,找到一条从节点u到节点v的最短路径。希望以表格的形式表示输出:第u行第v列给出的是节点u到节点v的最短路径权重。        对...
  • gqtcgq
  • gqtcgq
  • 2015年05月10日 16:02
  • 2313

所有节点对的最短路径问题

前面在《单源最短路径》中我们接触了最短路径问题,并介绍了求解最短路径问题的算法,比如Bellman-Ford算法,Dijkstra算法。不过,那里我们计算的是从一个固定的源节点到所有其他点的最短路径。...
  • cumtwyc
  • cumtwyc
  • 2015年01月15日 19:37
  • 1753

所有节点最短路径的Johnson实现

一、数据集形式 其中:6105(节点个数) 7035(边数) 0(id) 1609(起始边) 1622(终边) 57.403187(权重)二、数据集上传中等待审核成功再链接过来三、实现代码// D...

(阶段三 dijkstra算法温习1.1)HDU 2544 最短路(利用dijkstra算法计算两个节点间的最短路径)

/* * HDU_2544_2.CPP * * Created on: 2013年11月10日 * Author: Administrator */ #include #i...

单源节点最短路径蛮力法和Dijkstra算法性能对比

一、单源节点问题的对比         在本文中,考虑单源点最短路径问题,对于一个加权连通图的一个称为起点的给定定点,求出它到所有其他定点之间的一系列最短路径。需要说明的是,这里所关心的不是从一个起点...

求利用邻接矩阵求多有节点最短路径的java程序 可运行

一:定义了邻接表的大小和要读取以及写入的文件位置; package algorithm; public class StaticVariable { public final static in...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈为什么最短路径中的路径还原只能用prev前驱节点来记录
举报原因:
原因补充:

(最多只允许输入30个字)