-
[BOJ] 1260 : DFS와 BFSSTUDYING/Algorithm 2018. 11. 6. 15:12728x90
문제
애증의 BFS DFS..
코드
#include <stdio.h>
int graph[1001][1001];
int DFSvisit[1001];
int BFSvisit[1001];
int queue[1001];
void DFS(int v, int n){
int i;
DFSvisit[v] = 1;
printf("%d ", v);
for (i = 1; i <= n; i++) {
if (DFSvisit[i] == 0 && graph[v][i] == 1) {
DFS(i, n);
}
}
}
void BFS(int v, int n){
int front = 0, rear = 0;
int i, pop;
BFSvisit[v] = 1;
queue[rear++] = v;
printf("%d ", v);
while (front < rear) {
pop = queue[front++];
for (i=1; i<=n; i++) {
if (BFSvisit[i] == 0 && graph[pop][i] == 1) {
printf("%d ", i);
queue[rear++] = i;
BFSvisit[i] = 1;
}
}
}
}
int main() {
int n, m, v;
int x, y;
scanf("%d%d%d", &n ,&m, &v);
for (int i=0; i<m; i++) {
scanf("%d%d", &x, &y);
graph[x][y] = graph[y][x] = 1;
}
DFS(v, n);
printf("\n");
BFS(v, n);
return 0;
}
'STUDYING > Algorithm' 카테고리의 다른 글
[BOJ] 1924 : 2007년 (Java) (0) 2018.11.07 [BOJ] 11719 : 그대로 출력하기 2 (Java) (0) 2018.11.07 [BOJ] 8958 : OX퀴즈 (0) 2018.11.01 [BOJ] 9012 : 괄호 (0) 2018.11.01 [BOJ] 1874 : 스택 수열 (0) 2018.10.18