该算法解决的问题是:找出一个顶点到其他顶点的最短路径
无权最短路径算法:借助广度优先搜索,距开始最近的那些顶点首先被赋值,而最远的顶点最后被赋值
伪码如下
void Unweighted(Table T) { Queue Q; Vertext V, W; Q = CreateQueue(NumVertex); MakeEmpty(Q); Enqueue(S, Q); while (!IsEmpty(Q)) { V = Dequeue(Q); T[V].Know = True; for each W adjacent to V if (T[W].Dist == Infinity) { T[W].Dist = T[V].Dist + 1; T[W].Path = V; Enqueue(W, Q); } } DisPoseQueue(Q); }