Written as an introduction to discrete mathematics, this new text is the only book available on graph theory to develop a mathematical framework to interrelate and solve different problems. It introduces the concepts of logic, proof and mathematical problem-solving through a comprehensive treatment of graph theory placing emphasis on algorithms in every chapter. Examples and applications are taken from a wide range of areas, allowing students to see mathematics in action by solving relevant problems and the visual component of graph theory shows that the subject is not only relevant but also fun.