DFS / BFS

Run Settings
LanguageC
Language Version
Run Command
#include <stdio.h> #define E 1001 int metrix[E][E]; int visits[E * E]; int q[E]; int front = -1, rear = -1; void initBfs () { for (int i = 0; i < E * E; i++) { visits[i] = 0; } } void DFS (int V, int N) { visits[V] = 1; printf("%d ", V); for (int i = 1; i <= N; i++) { if (!visits[i] && metrix[V][i]) { DFS(i, N); } } } void BFS (int V, int N) { rear++; q[rear] = V; visits[V] = 1; printf("%d ", V); while (front < rear) { front++; int v = q[front]; for (int i = 1; i <= N; i++) { if (!visits[i] && metrix[v][i]) { printf("%d ", i); rear++; q[rear] = i; visits[i] = 1; } } } } int main(void) { int N = 0; int M = 0; int V = 0; scanf("%d %d %d", &N, &M, &V); for (int i = 0; i < M; i++) { int firstV = 0; int secondV = 0; scanf("%d %d", &firstV, &secondV); metrix[firstV][secondV] = 1; metrix[secondV][firstV] = 1; } DFS(V, N); printf("\n"); initBfs(); BFS(V, N); printf("\n"); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines