Graph Theory and Algorithms