Algorithms In Java, Parts 1-4 door Robert Sedgewick