BFS算法求解单源最短路径问题(非带权图)

//BFS算法求解单源最短路径问题(非带权图)
void BFS_MIN_DISTANCE(Graph G, int u) {
    //d[i]表示从u到i结点的最短路径
    for (i = 0; i < G.vexnum; ++i) {
        d[i] = ∞;//初始化路径长度
        path[i] = -1;//最短路径从哪个顶点过来
    }
    d[u] = 0;
    visited[u] = true;
    EnQueue(Q, u);
    while (!isEmpty(Q)) {
        DeQueue(Q, u);//队头元素u出队
        for (w = FirstNeighbor(G, u); w >= 0; w = NextNeighbor(G, u, w)) {
            if (!visited[w]) {//w为u的尚未访问的邻接结点
                d[w] = d[u] + 1;//路径长度加1
                path[w] = u;//最短路径应从u到w
                visited[w] = true;//设已访问标记
                EnQueue(Q, w);//顶点w入队
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值