From aa6073c66da97a51f195ff748fd10653ab67ec81 Mon Sep 17 00:00:00 2001 From: Ravin Wijekoon <50649031+ravinWijekoon@users.noreply.github.com> Date: Sat, 15 Oct 2022 18:00:44 +0530 Subject: [PATCH] Added Topological Sort Code Snippet --- Topological_Sort.cpp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 Topological_Sort.cpp diff --git a/Topological_Sort.cpp b/Topological_Sort.cpp new file mode 100644 index 0000000..9c4846b --- /dev/null +++ b/Topological_Sort.cpp @@ -0,0 +1,43 @@ +#include +#define ll long long +using namespace std; +int main() +{ + ll n,m; + cin>>n>>m; + vectoradj[n+1]; + vectorindeg(n+1); + for(ll i=1;i<=n;i++) + indeg[i]=0; + for(ll i=1;i<=m;i++) + { + ll u,v; + cin>>u>>v; + adj[u].push_back(v); + indeg[v]++; + } + queueq; + for(ll i=1;i<=n;i++) + { + if(indeg[i]==0) + q.push(i); + } + vectortopo; + while(!q.empty()) + { + ll curr=q.front(); + q.pop(); + topo.push_back(curr); + for(auto neb:adj[curr]) + { + if(indeg[neb]==0) + continue; + indeg[neb]--; + if(indeg[neb]==0) + q.push(neb); + } + + } + for(auto x:topo) + cout<