Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Topological osrt may or may not be unique .. goes from vertice having least influx to highest influx
- // used in prerequistes course type questions
- int n; // number of vertices
- vector<vector<int>> adj; // adjacency list of graph
- vector<bool> visited;
- vector<int> ans;
- void dfs(int v) {
- visited[v] = true;
- for (int u : adj[v]) {
- if (!visited[u])
- dfs(u);
- }
- ans.push_back(v);
- }
- void topological_sort() {
- visited.assign(n, false);
- ans.clear();
- for (int i = 0; i < n; ++i) {
- if (!visited[i])
- dfs(i);
- }
- reverse(ans.begin(), ans.end());
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement