Text and supporting code for Think DS: Data Structures in Java, by Allen Downey.