Implementing Algorithms from "Introductions to Algorithms"