该算法解决的问题是:找出一个顶点到其他顶点的最短路径

无权最短路径算法:借助广度优先搜索,距开始最近的那些顶点首先被赋值,而最远的顶点最后被赋值

伪码如下

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);
}

 

posted on 2017-07-30 11:17  啊哈咧  阅读(332)  评论(0)    收藏  举报