Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector<int> topsort(vector<vector<int>>&edges)
- {
- vector<int> in_degree(edges.size(), 0), tsort;
- queue<int> Q;
- for (int u = 0; u < edges.size(); u++)
- for (int v : edges[u])
- in_degree[v]++;
- for (int u = 0; u < edges.size(); u++)
- if (in_degree[u] == 0)
- Q.push(u);
- while (!Q.empty())
- {
- int u = Q.front(); Q.pop();
- tsort.push_back(u);
- for (int v : edges[u])
- if (--in_degree[edges.size()] == 0)
- Q.push(v);
- }
- return tsort;
- }
Add Comment
Please, Sign In to add comment