7. Topological Sort
Previous6. Floyd Warshall's Algorithm(All Pair Sortest Path)Next8. Find if the given edge is a bridge in graph.
Last updated
Last updated
void topologicalSort(vector<int> v[], vector<bool> &vs, stack<int> &s, int src)
{
vs[src] = 1;
for (int i = 0; i < v[src].size(); i++)
{
int node = v[src][i];
if (!vs[node])
{
topologicalSort(v, vs, s, node);
}
}
s.push(src);
return;
}
vector<int> bfs(vector<int> v[], vector<int> &indeg)
{
queue<int> q;
for (int i = 0; i < indeg.size(); i++)
{
if (indeg[i] == 0)
{
q.push(i);
}
}
vector<int> res;
while (!q.empty())
{
int x = q.front();
res.push_back(x);
q.pop();
for (int i = 0; i < v[x].size(); i++)
{
indeg[v[x][i]] = indeg[v[x][i]] - 1;
if (indeg[v[x][i]] == 0)
{
q.push(v[x][i]);
}
}
}
return res;
}