The object of data abstraction and structures using java - Riley, David D. (Addison Wesley, 2003)