Design and implement algorithms to find strong and weakly connected components in directed and non-directed graphs. [0] https://en.wikipedia.org/wiki/Connectivity_(graph_theory) [1] https://en.wikipedia.org/wiki/Strongly_connected_component