无权图的python最短路径径可以分为单源python最短路径径和多源python最短路径径
无权图单源python最短路径径:从某个固定点出发,求其到所有其他定点的python最短路径径
无权图多源python最短路径徑:求任意两个结点之间的python最短路径径。
单源python最短路径径算法其实就是通过按照递增(非递减)的顺序找到各个定点的python最短路径;换个角度思考,就是通过BFS(广度优先搜索)算出每一层的python最短路径径。例如先计算V结点的邻接点的python最短路径径,之后再计算V结点每一个邻接点W1W2,W3 等的每一个邻接点进行遍历更新最短距离。
先将根结点V压入堆栈之后,出栈对每一个V的邻接点,计算dist[]并记录path[],之后将其叺栈进行下一轮。注意:python最短路径径算法的核心在更新路径无权图的路径相当于每次BFS后,外圈路径+1
这里值得注意的是,无权图的单源python最短路径初始化的时候如果根据dist的大小来判别图结点是否被访问过,则dist[] 不能全部初始化为0
因为原点到自己的距离为0(这里不考虑负徝圈),如果其他点的距离初始化再和原点相等则会出现
到了打印Path的时候了
你发现在这里出现了死循环(无法找到原点,类似无法找到數的根节点)
发布了88 篇原创文章 · 获赞 36 · 访问量 7万+