Graph Theory (An Introduction to Proofs, Algorithms, and Applications)