#include <iostream>
#include <vector>
#include <queue>
using namespace std;
void bfs(int start,vector<vector <int>> temp) {
queue <int> p;
vector<bool> check(temp.size(), false);
p.push(start);
check[start] = true;
for (int i = 0; i < temp[start].size(); i++) {
if (temp[start][i] == 1) {
p.push(i);
check[i] = true;
}
}
cout << p.front() << endl;
p.pop();
while (!p.empty()) {
for (int i = 0; i < temp[p.front()].size(); i++) {
if (temp[p.front()][i] == 1&&check[i]==false){
p.push(i);
check[i] = true;
}
}
cout << p.front() << endl;
p.pop();
}
}
int main() {
vector<vector<int>> temp = {
{0,1,1,0,0,0,0},
{1,0,1,1,1,0,0},
{1,1,0,0,0,1,1},
{0,1,0,0,1,0,0},
{0,1,0,1,0,0,0},
{0,0,1,0,0,0,1},
{0,0,1,0,0,1,0}
};
for (int i = 0; i < temp.size(); i++) {
for (int j = 0; j < temp[i].size(); j++) {
cout << temp[i][j];
}
cout << endl;
}
bfs(0,temp);
system("pause");
return 0;
}
0110000
1011100
1100011
0100100
0101000
0010001
0010010
0
1
2
3
4
5
6
'C++ 알고리즘 > 6. 검색 알고리즘' 카테고리의 다른 글
깊이 우선 탐색(DFS) // 프로그래머스 타겟넘버 (0) | 2019.09.03 |
---|---|
깊이 우선 탐색 (DFS) // 재귀 사용 (0) | 2019.09.03 |
깊이 우선 탐색 (DFS) // 스텍 사용 (0) | 2019.09.03 |
댓글