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

      

  • 相关阅读:
    宠物小精灵之收服(dp)
    装箱问题(dp)
    背包问题(采药)
    导弹防御系统(dfs+贪心)
    2018091-2 博客作业
    第一周例行报告
    洛谷 P6378 [PA2010]Riddle
    洛谷 P5782 [POI2001]和平委员会
    洛谷 P3825 [NOI2017]游戏
    POJ 3683 Priest John's Busiest Day
  • 原文地址:https://www.cnblogs.com/wc1903036673/p/3461291.html
Copyright © 2020-2023  润新知