diff --git a/TopologicalSorting.java b/TopologicalSorting.java new file mode 100644 index 0000000..ec85870 --- /dev/null +++ b/TopologicalSorting.java @@ -0,0 +1,53 @@ +import java.util.*; +class Graph{ + int v; + LinkedList adj[]; + @SuppressWarnings("unchecked") + Graph(int v){ + this.v=v; + adj=new LinkedList[v]; + for(int i=0;i(); + } +} +class TopologicalSorting{ + public static void addEdge(Graph g,int u,int v){ + g.adj[u].add(v); + } + public static void toposortutil(Graph g,int node,boolean visit[],Stack st) + { + visit[node]=true; + int i; + Iteratorit=g.adj[node].iterator(); + while(it.hasNext()) + { + i=it.next(); + System.out.println(i); + if(!visit[i]) + toposortutil(g,i,visit,st); + } + System.out.println("node"+node); + st.push(node); + } + public static void toposort(Graph g){ + Stack st=new Stack(); + boolean visit[]=new boolean[g.v]; + for(int i=0;i