check for cycle (needed for topological sort, since we'll check for cycle before starting) topological sort count connected components in a graph list strongly connected components check for bipartite graph Even More Knowledge Recursion Stanford lectures on recursion & backtracking: Lecture 8 | Progr...