Foundations of algorithms using C++ pseudocode - Neapolitan, Richard E. (Jones and Bartlett, 2004)