From 006250dadb08d08aaa5fe3001625a2012a5e4f95 Mon Sep 17 00:00:00 2001 From: Christian Gomez Date: Tue, 8 Oct 2019 22:45:03 -0500 Subject: [PATCH] Create DepthFirstSearch.java --- Algorithms/DepthFirstSearch.java | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 Algorithms/DepthFirstSearch.java diff --git a/Algorithms/DepthFirstSearch.java b/Algorithms/DepthFirstSearch.java new file mode 100644 index 00000000..0f89b006 --- /dev/null +++ b/Algorithms/DepthFirstSearch.java @@ -0,0 +1,53 @@ +package Algorithms; + +import java.util.Iterator; +import java.util.LinkedList; + +public class DepthFirstSearch { + public static void main(String args[]) + { + Graph g = new Graph(4); + + g.addEdge(0, 1); + g.addEdge(0, 2); + g.addEdge(1, 2); + g.addEdge(2, 0); + g.addEdge(2, 3); + g.addEdge(3, 3); + + g.DFS(2); + } +} + + +class Graph { + private int numVertices; + private LinkedList adjLists[]; + private boolean visited[]; + + public Graph(int vertices) { + numVertices = vertices; + adjLists = new LinkedList[vertices]; + visited = new boolean[vertices]; + + for (int i = 0; i < vertices; i++) + adjLists[i] = new LinkedList(); + } + + void addEdge(int src, int dest) { + adjLists[src].add(dest); + } + + void DFS(int vertex) { + visited[vertex] = true; + System.out.print(vertex + " "); + + Iterator ite = adjLists[vertex].listIterator(); + while (ite.hasNext()) + { + int adj = (int) ite.next(); + if (!visited[adj]) + DFS(adj); + } + } +}