#include<iostream>
#include<vector>
#include<queue>
std::vector<int> a[8];
int c[8] = {0};
/*
a[1].push_back(2);
a[2].push_back(1);
a[1].push_back(3);
a[3].push_back(1);
a[2].push_back(3);
a[3].push_back(2);
a[2].push_back(4);
a[4].push_back(2);
a[2].push_back(5);
a[5].push_back(2);
a[3].push_back(6);
a[6].push_back(3);
a[3].push_back(7);
a[7].push_back(3);
*/
void bfs(int start)
{
std::queue<int> v;
v.push(start);
while(!v.empty())
{
int x = v.front();
c[start] = true;
std::cout<<v.front()<<" ";
v.pop();
for(int i = 0 ; i < a[start].size() ; i++)
{
if(!c[a[start][i]])
{
v.push(a[start][i]);
c[a[start][i]] = 1;
}
}
}
}
int main()
{
a[1].push_back(2);
a[2].push_back(1);
a[1].push_back(3);
a[3].push_back(1);
a[2].push_back(3);
a[3].push_back(2);
a[2].push_back(4);
a[4].push_back(2);
a[2].push_back(5);
a[5].push_back(2);
a[3].push_back(6);
a[6].push_back(3);
a[3].push_back(7);
a[7].push_back(3);
bfs(1);
}
ㅈㄴ 신기하네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
해당 댓글은 삭제되었습니다.
지금 대충 컴퓨터가 내뱉는 오류 보면 1까진 정상작동하는데 2부터 정상작동을 안한다는건데 그 a[x]를 안쓰면 왜 그렇게 되는지가 궁금해요
아 설마 while문 안에서만 도니까 start값을 계속 쥐게 되면 1번노드만 계속 쳐잡고 있으니 대참사가 벌어지는건가
아하 ㄳ