/* ** This is a C++ implementation for ** Kahn's algorithm for ** Topological Sort. */ #include <cstdio> #include <queue> #include <vector> using namespace std; #define MAX 100 vector<int> adjList[MAX+7], solution; int V, inDegree[MAX+7]; void process() { queue<int> Q; int u,v; solution.clear(); for(u=0;u<V;u++) if(inDegree[u]==0) Q.push(u); while(!Q.empty()) { u=Q.front(), Q.pop(); for(int i=0;i<(int)adjList[u].size();i++) { v=adjList[u][i]; inDegree[v]--; if(inDegree[v]==0) Q.push(v); } solution.push_back(u); } } int main() { /* code */ return 0; }