Think data structures : algorithms and information retrieval in Java - Downey, Allen B. (O'Reilly, 2017)