diff --git a/topologicalsort.cpp b/topologicalsort.cpp new file mode 100644 index 0000000..a2b52c1 --- /dev/null +++ b/topologicalsort.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; + +void topologicalSort(vector adj[], int V) +{ + vector in_degree(V, 0); + + for (int u = 0; u < V; u++) { + for (int x:adj[u]) + in_degree[x]++; + } + + queue q; + for (int i = 0; i < V; i++) + if (in_degree[i] == 0) + q.push(i); + + + while (!q.empty()) { + int u = q.front(); + q.pop(); + cout< adj[], int u, int v){ + adj[u].push_back(v); +} + +int main() +{ + int V=5; + vector adj[V]; + addEdge(adj,0, 2); + addEdge(adj,0, 3); + addEdge(adj,1, 3); + addEdge(adj,1, 4); + addEdge(adj,2, 3); + + cout << "Following is a Topological Sort of\n"; + topologicalSort(adj,V); + + return 0; +}