图广度优先算法(BFS)

Posted 工科狗和生物喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了图广度优先算法(BFS)相关的知识,希望对你有一定的参考价值。

正文之前

好久没弄C++了,上学期颓废了半学期,这学期开学就搞课程设计快疯了。待会要考试CSP,所以弄点代码储备,待会到了考场说不定能省点功夫!

正文

 
   
   
 
  1. #include <iostream>

  2. #include<queue>

  3. #define Max 1000

  4. using namespace std;

  5. struct Graph

  6. {

  7.   int  a[10][10];

  8. };

  9. bool visited[10];

  10. queue<int> path;

  11. int width=0;

  12. void BFS(Graph tu,int start)

  13. {

  14.    visited[start]=true;

  15.    path.push(start);

  16.    while(path.size()!=0)

  17.    {

  18.        int top=path.front();

  19.        path.pop();

  20.        visited[top]=true;

  21.        cout<<top<<endl;

  22.        for(int i=0;i<10;++i)

  23.        {

  24.            if(tu.a[top][i]!=Max && visited[i]==false)

  25.            {

  26.                visited[i]=true;

  27.                path.push(i);

  28.            }

  29.        }

  30.    }

  31. }

  32. int main()

  33. {

  34.    Graph tu;

  35.    for(auto &s:tu.a)

  36.        for(auto &x:s)

  37.            x=Max;

  38.    int a,b;

  39.    for(auto &s:visited)

  40.        s=false;

  41.    for(int i=0;i<8;++i)

  42.    {

  43.        cin>>a>>b;

  44.        tu.a[a][b]=tu.a[b][a]=1;

  45.    }

  46.    BFS(tu,1);

  47. }

Output:

 
   
   
 
  1. Last login: Sun Mar 18 11:46:37 on ttys000

  2. = * = * = * = * = * = * = * = * = * = * = * = * = * = *

  3. ✧。٩(ˊᗜˋ)و✧* Hello Welcome 张照博!!开启愉快的一天吧!

  4. = * = * = * = * = * = * = * = * = * = * = * = * = * = *

  5. /Users/zhangzhaobo/program/C++/BFS ; exit;

  6. HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/BFS ; exit;

  7. 1 4 1 3 1 5 2 5 2 3 4 5 5 6 5 7

  8. 1

  9. 3

  10. 4

  11. 5

  12. 2

  13. 6

  14. 7

  15. logout

  16. Saving session...

  17. ...copying shared history...

  18. ...saving history...truncating history files...

  19. ...completed.

  20. [进程已完成]

正文之后

祝我好运!发誓这次考试后一定苦学!上学期太飘了。


以上是关于图广度优先算法(BFS)的主要内容,如果未能解决你的问题,请参考以下文章

常用的图算法:广度优先(BFS)

基本算法——深度优先搜索(DFS)和广度优先搜索(BFS)

集册 | Java 实现图的广度优先搜索(BFS)算法,一起深度学习算法思维!

算法-03 | 深度优先DFS| 广度优先BFS

算法 | 广度优先遍历BFS

无向图的广度优先遍历算法(bfs)