Computer Engineering/자료구조

BFS(Breadth First Search)

dely 2019. 9. 23. 22:01

- C++

#include <iostream>
#include <queue>
#include <vector>

using namespace std;

int number = 7;
int c[7];
vector<int> a[8];

void bfs(int start) {
    queue<int> q;
    q.push(start);
    c[start] = true;
    while (!q.empty()) {
        int x = q.front();
        q.pop();
        printf("%d", x);
        for(int i=0;i<a[x].size();i++){
            int y = a[x][i];
            if(!c[y]){
                q.push(y);
                c[y] = true;
            }
        }
    }
}

int main(int argc, const char * argv[]) {
    a[1].push_back(2);
    a[2].push_back(1);

    a[2].push_back(3);
    a[3].push_back(2);

    a[3].push_back(4);
    a[4].push_back(3);

    a[4].push_back(5);
    a[5].push_back(4);

    a[5].push_back(6);
    a[6].push_back(5);

    a[6].push_back(7);
    a[7].push_back(6);

    a[7].push_back(8);
    a[8].push_back(7);

    bfs(1);

    return 0;
}
반응형