Java Software structures : - Lewis, John (Addison - Wesley, 2004)