图算法中的最短路径问题解析
1. 无权最短路径算法
无权最短路径算法用于在无权图中找到从单个源顶点到所有其他顶点的最短路径。以下是该算法的伪代码:
void unweighted( Vertex s )
{
Queue<Vertex> q = new Queue<Vertex>( );
for each Vertex v
v.dist = INFINITY;
s.dist = 0;
q.enqueue( s );
while( !q.isEmpty( ) )
{
Vertex v = q.dequeue( );
for each Vertex w adjacent to v
if( w.dist == INFINITY )
{
w.dist = v.dist + 1;
w.path = v;
q.enqueue( w );
}
}
}
该算法的工作流程如下:
1. 初始化所有顶点的距离为无穷大,将源顶点的距离设为 0,并将其加入队列。
2. 当队列不为空时,取出队列头部的顶点 v。
3. 遍历 v 的所有相邻顶点 w,如果 w 的距离仍为无穷大,则更新 w 的距离为 v 的距离加 1,并记录 w 的路径为 v,然后将 w 加入队列。
超级会员免费看
订阅专栏 解锁全文
950

被折叠的 条评论
为什么被折叠?



