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

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



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


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


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


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

那么为什么前驱可以呢,

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



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

无向图中节点的迭代得到从起始节点到结束节点之间的所有路径,并从中得到最短路径的节点

无向无权图中节点的迭代得到从起始节点到结束节点之间的所有路径,并从中得到最短路径的节点。由于是无权图,则所有的路径的权值可以当做是1.只需要得到所有可能路径中包含节点最小的便是最短的路径了。 本...
  • cuiyaoqiang
  • cuiyaoqiang
  • 2015年10月09日 15:23
  • 492

【学习笔记----数据结构20-图的最短路径】

最短路径 对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点是源点,最后一个顶点是终点。 迪杰斯特拉算法 它并不是一下子就求出V0到V8的最短路...
  • pigpigpig4587
  • pigpigpig4587
  • 2014年11月13日 11:10
  • 1085

利用Dijkstra算法实现记录每个结点的所有最短路径

我们知道,Dijkstra是解决单源最短路问题的,并且最基本的算法仅能求出最短路的长度,而不能输出路径,本文基于Dinjkstra进行改进,使之能记录源点到任意点的所有最短路径。使用vector来记录...
  • xyt8023y
  • xyt8023y
  • 2015年05月29日 13:16
  • 3111

每对结点之间最短路径的C++实现

转载本博客上原创文章者,请注明出处。 Dijkstra算法和Bellman-Ford算法只能计算出起始点到其他各点的最短路径,但不能计算任意两队顶点之间的最短路径。若真想利用这两张算法,可以来一...
  • iqRocket
  • iqRocket
  • 2012年12月17日 14:03
  • 3708

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

贴代码在此,有待后续改进。 #include #include #include #include #include #include #include using namespace std; ...
  • zn505119020
  • zn505119020
  • 2015年05月22日 11:21
  • 551

第25章:每对顶点间的最短路径—基于矩阵乘法的动态规划算法

下面给出一个基于动态规划的算法,void graph::shortestWeightsOfAllPairs() { const int NOT_A_VERTEX=-1; ...
  • weishenmetlc
  • weishenmetlc
  • 2016年05月31日 14:33
  • 1263

数据结构 二叉树 —— 寻找中序遍历的前驱后继

一,基本概念 前驱结点:节点val值小于该节点val值并且值最大的节点 后继节点:节点val值大于该节点val值并且值最小的节点 二,寻找途径 前驱结点 (a...
  • starter_____
  • starter_____
  • 2017年10月07日 23:31
  • 493

Floyd两种记录路径的方法

①void floyd(){ int i,j,k; for(i=1;i
  • immiao
  • immiao
  • 2014年03月26日 18:12
  • 1863

【动态规划】每对顶点之间的最短路径之Floyd-Warshall算法

《算法导论》25.2. 《计算机算法(C++版)》5.3. 当然这个算法的实现是相当简单的,只使用了三重循环,时间复杂度为O(n^3)。但是重点是算法背后的思想,一般教材都把这个算法当做典型的图算法...
  • Aegeaner
  • Aegeaner
  • 2012年04月13日 17:02
  • 2079

利用广度优先搜索求最短路径

注:下面是以无权的图为基础的 广度优先搜索:http://blog.csdn.net/u012763794/article/details/51081830 1.问题描述 输入: 输入n个顶点,...
  • u012763794
  • u012763794
  • 2016年04月09日 13:57
  • 2744
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅谈为什么最短路径中的路径还原只能用prev前驱节点来记录
举报原因:
原因补充:

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