bfs.txt
6 9
1 2 1 3 2 4 2 5 3 4 3 6 4 5 4 6 5 6
----------------------------------------------
#include <stdio.h>
int n;
int link;
int que[30];
int visit[30];
int map[30][30];
int front = 0;
int rear = 0;
void bfs(int v){
// visit 표시
visit[v] = 1;
//que에 v 삽입
que[rear++] = v;
// que가 빌때까지
while(front < rear){
// v 값에 연결된 값 검색
int node = que[front++];
// node와 연결된 v를 찾는다.
for(int i = 0; i <= n; i ++ ){
// 연결 되어 있고 방문하지 않았다면
if(map[node][i] == 1 && visit[i] == 0 ){
// 방문표시 하고 que에 넣는다.
visit[i] = 1;
que[rear++] = i;
printf("%d -> %d \n", node, i);
}
}
}
}
int main()
{
int start;
int v1, v2;
freopen("bfs.txt","r",stdin);
scanf("%d%d", &n, &link);
for(int i =0 ; i < link; i++){
scanf("%d%d", &v1, &v2);
map[v1][v2] = map[v2][v1] = 1;
}
bfs(1);
return 0;
}
댓글 없음:
댓글 쓰기