广度优先搜索

广搜求最少转机

struct node {
    int x; ///城市编号
    int s;
}q[maxn];
void bfs() {
    head=tail=1;
    q[tail].x=1;
    q[tail++].s=0;
    vis[start]=1;
    int cur,flag=0;
    while(head<tail) {
        cur=q[head].x;
        for(int i=1;i<=n;i++) {
            if(e[cur][i]!=inf && !vis[i]) {
                q[tail].x=i;
                q[tail++].s=q[head].s+1;
                vis[i]=1;
            }
            if(q[tail-1].x==end) {
                flag=1;
                break;
            }
        }
        if(flag==1) break;
        head++;
    }
}
原文地址:https://www.cnblogs.com/iwomeng/p/11788042.html