top1编程
← 返回题目
题解

bfs遍历

1 条题解

  • 0
    @ 2026-7-29 0:20:13
    #include<bits/stdc++.h>
    using namespace std;
    int a[11][11];
    int q[100],h=0,t=0;
    int vis[11];
    int main(){
        int n,e;
        scanf("%d%d",&n,&e);
        for(int i=0;i<e;i++){
            int x,y;
            scanf("%d%d",&x,&y);
            a[x][y]=1;
            a[y][x]=1;
        }
        q[t++]=1;
        vis[1]=1;
        while(h<t){
            int u=q[h++];
            printf("%d ",u);
            for(int v=1;v<=n;v++){
                if(a[u][v]&&!vis[v]){
                    vis[v]=1;
                    q[t++]=v;
                }
            }
        }
        return 0;
    }
    
    • 1