Data structures and algorithms in java. - Goodrich Michael T; Tamassia Roberto (2001)