Graph-theoretic Algorithms