Graph Theory, Combinatorics and Algorithms