diff --git a/src/main/java/com/github/pedrovgs/problem99/Graph.java b/src/main/java/com/github/pedrovgs/problem99/Graph.java new file mode 100644 index 00000000..528d7876 --- /dev/null +++ b/src/main/java/com/github/pedrovgs/problem99/Graph.java @@ -0,0 +1,85 @@ +import java.io.*; +import java.util.*; +class Graph +{ + private int V; + private int R; + private LinkedList adj[]; + ArrayList trav; + Graph(int v,int rel) + { + V = v; + R = 2*rel; + adj = new LinkedList[v]; + trav = new ArrayList<>(); + for (int i=0; i(); + } + void addEdge(int l, int m) + { + adj[l].add(new Integer(m)); + adj[m].add(new Integer(l)); + } + void DFSUtil(int v,boolean visited[]) + { + visited[v] = true; + //System.out.print(v+" "); + trav.add(new Integer(v)); + Iterator i = adj[v].listIterator(); + while (i.hasNext()) + { + int n = i.next(); + if (!visited[n]) + DFSUtil(n, visited); + } + } + ArrayList DFS(int v) + { + boolean visited[] = new boolean[V]; + DFSUtil(v, visited); + + return trav; + + } + + public static void main(String args[]) + { + Scanner sc = new Scanner(System.in); + + System.out.println("Enter the number of vertices and relations: "); + int n = sc.nextInt(); + int rel = sc.nextInt(); + + sc.nextLine(); + + System.out.println("Enter all the vertices: "); + String family = sc.nextLine(); + char fam[] = new char[n]; + char sorted_fam[] = new char[n]; + for(int j = 0 ; j < n ; j++) { + fam[j] = family.charAt(2*j); + sorted_fam[j] = fam[j]; + } + + Graph g = new Graph(n,rel); + + Arrays.sort(sorted_fam); + + System.out.println("Enter the two vertices in "+rel+" relations (space separated) : "); + + for(int j = 0 ; j ans = g.DFS(source); + + for(int j = 0 ; j < ans.size() ; j++) { + System.out.print(sorted_fam[ans.get(j)] + " "); + } + + } +} \ No newline at end of file