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