From 47a238cea302fc19f22476f5502fad643de640b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9D=92=AEubin?= <162704899+subin-shk@users.noreply.github.com> Date: Thu, 31 Oct 2024 19:35:24 +0545 Subject: [PATCH] Create dfs.c --- C/dfs.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 C/dfs.c diff --git a/C/dfs.c b/C/dfs.c new file mode 100644 index 0000000..bcc9c4e --- /dev/null +++ b/C/dfs.c @@ -0,0 +1,34 @@ +#include + +#define MAX 100 + +// Function to perform DFS +void dfs(int graph[MAX][MAX], int visited[], int node, int n) { + visited[node] = 1; // Mark the current node as visited + printf("%d ", node); // Process the current node + + // Recur for all the vertices adjacent to this vertex + for (int i = 0; i < n; i++) { + if (graph[node][i] == 1 && !visited[i]) { // If there's an edge and it's not visited + dfs(graph, visited, i, n); + } + } +} + +int main() { + int graph[MAX][MAX] = { + {0, 1, 1, 0, 0}, + {1, 0, 0, 1, 0}, + {1, 0, 0, 0, 1}, + {0, 1, 0, 0, 1}, + {0, 0, 1, 1, 0} + }; + + int visited[MAX] = {0}; // Visited array + int n = 5; // Number of vertices + + printf("DFS Traversal starting from vertex 0:\n"); + dfs(graph, visited, 0, n); + + return 0; +}