Data structures and problem solving using java - Weiss, Mark Allen. (Addison Wesley, 2002)