专栏首页工科狗和生物喵【图】广度优先算法(BFS)

【图】广度优先算法(BFS)

正文之前

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

正文

#include <iostream>
#include<queue>
#define Max 1000

using namespace std;
struct Graph
{
   int  a[10][10];
};


bool visited[10];
queue<int> path;
int width=0;

void BFS(Graph tu,int start)
{
    visited[start]=true;
    path.push(start);
    while(path.size()!=0)
    {
        int top=path.front();
        path.pop();
        visited[top]=true;
        cout<<top<<endl;
        for(int i=0;i<10;++i)
        {
            if(tu.a[top][i]!=Max && visited[i]==false)
            {
                visited[i]=true;
                path.push(i);
            }
        }

    }
}

int main()
{
    Graph tu;
    for(auto &s:tu.a)
        for(auto &x:s)
            x=Max;
    int a,b;
    for(auto &s:visited)
        s=false;
    for(int i=0;i<8;++i)
    {
        cin>>a>>b;
        tu.a[a][b]=tu.a[b][a]=1;
    }
    BFS(tu,1);
}

Output:

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


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


/Users/zhangzhaobo/program/C++/BFS ; exit;
HustWolf:~ zhangzhaobo$ /Users/zhangzhaobo/program/C++/BFS ; exit;
1 4 1 3 1 5 2 5 2 3 4 5 5 6 5 7 
1
3
4
5
2
6
7
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[进程已完成]

正文之后

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

本文分享自微信公众号 - 工科狗和生物喵(gh_3507b116a1f8),作者:HustWolf

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 算法 | 广度优先遍历BFS

    BFS算法,也称作广度优先搜索算法。是一种图形搜索演算法。简单的说,BFS是从根节点开始,沿着树的宽度遍历树的节点,如果发现目标,则演算终止。(百度百科)

    算法与编程之美
  • 算法:广度优先搜索(BFS)

    广度优先遍历是连通图的一种遍历策略。思想是从一个顶点 v0 开始,辐射状地优先遍历其周围较广的区域。

    WEBJ2EE
  • 【小算法】图的遍历之广度优先(BFS)

    其实就是一个权重矩阵,用 1 代表两个结点有连接,0 表示没有连接,这样的表示方式通俗易懂,特别适合稠密图,也就是大多数结点是亮亮连接的情况。

    Frank909
  • 图的广度优先搜索(BFS)

    把以前写过的图的广度优先搜索分享给大家(C语言版) 1 #include<stdio.h> 2 #include<stdlib.h> 3 #defi...

    lizelu
  • 深度优先DFS和广度优先BFS

    之前在HTML渲染过程这篇分享有人在评论问我,这个过程是DFS还是BFS,发现自己好水,确实不知道渲染过程是什么优先,到现在都不知道。

    wade
  • 广度优先搜索 BFS

    图用来模拟不同东西是如何连接的。比如,在一个游戏中,模拟谁欠谁钱。如 Alex 欠 Rama 钱,将会如下所示:

    caoqi95
  • 广度优先搜索(BFS)

    广度优先搜索(BFS)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型。

    刘开心_1266679
  • 广度优先搜索(BFS)

    广度优先搜索,顾名思义,就是在搜索的时候,广度优先,优先遍历当前的子节点,进行搜索.比如:

    仙士可
  • BFS(广度优先算法)也就这么回事

    最近在刷关于树的题,其实树也是面试中面试官喜欢考察的问题。对树稍微有了解的同学想必都知道解决这类问题无非是遍历,BFS(广度优先)或者是DFS(深度优先)。这俩...

    写代码的阿宗

扫码关注云+社区

领取腾讯云代金券