From 21f290b7d66a6c9c17eccd9b3b774ce235abf792 Mon Sep 17 00:00:00 2001 From: vishal Date: Thu, 12 Mar 2026 13:41:32 +0530 Subject: [PATCH] Added dfs code --- .../backtracking/DFSOFDIRECTEDGRAPH.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/com/thealgorithms/backtracking/DFSOFDIRECTEDGRAPH.java diff --git a/src/main/java/com/thealgorithms/backtracking/DFSOFDIRECTEDGRAPH.java b/src/main/java/com/thealgorithms/backtracking/DFSOFDIRECTEDGRAPH.java new file mode 100644 index 000000000000..1715b8315105 --- /dev/null +++ b/src/main/java/com/thealgorithms/backtracking/DFSOFDIRECTEDGRAPH.java @@ -0,0 +1,58 @@ +import java.util.*; + +class Solution { + // Function to perform DFS traversal + public void dfs(int v, List[] adj, + boolean[] visited, + List result) { + + // Mark current node as visited + visited[v] = true; + + // Store node in result + result.add(v); + + // Traverse all neighbours + for (int u : adj[v]) { + if (!visited[u]) { + dfs(u, adj, visited, result); + } + } + } +} + +public class Main { + public static void main(String[] args) { + // Number of vertices + int V = 5; + + // Adjacency list + List[] adj = new ArrayList[V]; + for (int i = 0; i < V; i++) { + adj[i] = new ArrayList<>(); + } + adj[0].addAll(Arrays.asList(1, 2)); + adj[1].addAll(Arrays.asList(0, 3)); + adj[2].addAll(Arrays.asList(0, 4)); + adj[3].add(1); + adj[4].add(2); + + // Visited array + boolean[] visited = new boolean[V]; + + // Result list + List result = new ArrayList<>(); + + // Create object + Solution sol = new Solution(); + + // Run DFS from node 0 + sol.dfs(0, adj, visited, result); + + // Print traversal + for (int x : result) { + System.out.print(x + " "); + } + System.out.println(); + } +}