This is a larger programming exercise. It was done for the Algorithms and datastructures programming course in 2013.