This book introduces graph algorithms on an intuitive basis followed by a detailed exposition in a literate programming style , with correctness proofs as well as worst-case analyses. Furthermore , full C++ implementations of all algorithms presented are given using the LEAD library of efficient data structure and algorithms.