Robert Sedgewick Algorithms in C, Part 5