Before starting with Kosaraju’s algorithm, you might want to revisit Depth first and beadth first algorithms.
Refer the following graph
vertex a,b in a graph are stringly connected if a is reachable from b and b is reachable from a.
In above graph, ABCD subgraph is strongly connected.
Kosaraju’s algorithm helps in finding all such strongly connected components in a graph.
1. Run Depth first search (DFS) on the graph and add verticies on a stack S.
2. Reverse (transpose) the graph by reversing directions of all the edges.
3. Pull a vertex v from Stack S (step 1), run DFS on on vertex on reversed graph created in step 2. All the nodes found in DFS from vertex v are strongly connected. Remove all nodes found in DFS from reversed graph and stack S.