Notice
Recent Posts
Recent Comments
Link
할껀하고놀자
[알고리즘] 간단한 bfs 구현 (C++) 본문
728x90
#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();
cout << 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() {
// 1 2
a[1].push_back(2);
a[2].push_back(1);
// 1 3
a[1].push_back(3);
a[3].push_back(1);
// 2 3
a[2].push_back(3);
a[3].push_back(2);
// 2 4
a[2].push_back(4);
a[4].push_back(2);
// 2 5
a[2].push_back(5);
a[5].push_back(2);
// 3 6
a[3].push_back(6);
a[6].push_back(3);
// 3 7
a[3].push_back(7);
a[7].push_back(3);
// 4 5
a[4].push_back(5);
a[5].push_back(4);
// 6 7
a[6].push_back(7);
a[7].push_back(6);
bfs(1);
return 0;
}
'[IT] > 알고리즘' 카테고리의 다른 글
[알고리즘] 간단한 union-find 알고리즘의 구현(C++) (0) | 2019.05.31 |
---|---|
[알고리즘] 간단한 dfs 구현 (C++) (0) | 2019.05.31 |
[알고리즘] 간단한 queue 구현(C++) (0) | 2019.05.31 |
[알고리즘] 간단한 스택 사용(C++) (0) | 2019.05.31 |
[알고리즘] stl 정렬 알고리즘 사용하기. (C++) (0) | 2019.05.31 |
Comments