Kahn's Algorithm uses BFS to produce a topological ordering of a DAG.
1. Compute inDegree[v] for all vertices.
2. Enqueue all vertices with inDegree = 0.
3. Dequeue u, append to result, decrement neighbors' in-degrees. If any reach 0, enqueue them.
4. If |result| < V, a cycle exists.