zoukankan      html  css  js  c++  java
  • ppt 图的基本算法 Bfs

     

    输入:

    8 9
    1 2
    1 3
    2 4
    2 5
    3 6
    3 7
    4 8
    5 8
    6 7

    // 图的BFS,使用C++队列
    #include <stdio.h>
    #include <string.h>
    #include <queue>
    using namespace std;
    #define N 10
    int g[N][N],bz[N],n,m;
    queue <int> q;
    void BFS(int cur)
    { int j;
    bz[cur]=1; q.push(cur);
    while (!q.empty())
    { cur=q.front(); printf(" V%d ", cur);q.pop();
    for (j=1;j<=N;j++)
    if (bz[j]==0 && g[cur][j]==1) { q.push(j); bz[j]=1; }
    }
    }
    void input()
    { int i,j,f,t;
    scanf("%d%d",&n,&m);
    for (int i=1; i<=m; i++)
    { scanf("%d%d",&f,&t); g[f][t]=g[t][f]=1; }
    }
    int main()
    { memset(g,0,sizeof(g)); memset(bz,0,sizeof(bz));
    input(); BFS(1);
    }

    *************************************************************************************


    // 图的BFS
    #include <stdio.h>
    #include <string.h>
    #define N 10
    int g[N][N],bz[N],n,m,q[N],qe,qs;
    void BFS(int cur)
    { int j,qs,qe;
    qs=qe=0; bz[cur]=1; q[qe++]=cur;
    while (qs<qe)
    { cur=q[qs++]; printf(" V%d ", cur);
    for (j=1;j<=N;j++)
    { if (bz[j]==0 && g[cur][j]==1)
    { q[qe++]=j; bz[j]=1; }
    }
    }
    }
    void input()
    { int i,j,f,t;
    scanf("%d%d",&n,&m);
    for (int i=1; i<=m; i++)
    { scanf("%d%d",&f,&t); g[f][t]=g[t][f]=1; }
    }
    int main()
    { int i,j;
    memset(g,0,sizeof(g)); memset(bz,0,sizeof(bz));
    input(); BFS(1);
    }

  • 相关阅读:
    redis配置认证密码以及远程访问
    Mybatis缓存配置
    Node.Js安装
    1.ArcGis几何图形之几何计算
    MessagePack 新型序列化反序列化方案
    Redis(六)-数据类型
    Redis(五)-数据库
    Redis(四)-配置
    Redis(三)-Ubuntu下安装
    Redis(二)-Win系统下安装
  • 原文地址:https://www.cnblogs.com/2014acm/p/3903256.html
Copyright © 2011-2022 走看看