Given a directed acyclic graph, do a topological sort on this graph

Given a directed acyclic graph, do a topological sort on this graph.

Do DFS by keeping visited. Put the vertex which are completely explored into a stack.
Pop from stack to get sorted order.

Space and time complexity is O(n).

Output:
5
6
1
2
3
8
11
4

Depth First Traversal in Graph

Depth First Traversal (or Search) for a graph is similar to Depth First Traversal of a tree. The only catch here is, unlike trees, graphs may contain cycles, so we may come to the same node again. To avoid processing a node more than once, we use a boolean visited array.
For example, in the following graph, we start traversal from vertex 2. When we come to vertex 0, we look for all adjacent vertices of it. 2 is also an adjacent vertex of 0. If we don’t mark visited vertices, then 2 will be processed again and it will become a non-terminating process. A Depth First Traversal of the following graph is 2, 0, 1, 3.

DFS

Output:
Following is Depth First Traversal (starting from vertex 2)
2 0 1 3