Data stuctures and alorithms in Java - Michael T. Goodrich (Wiley India, 2010)