Your document mentions options for Java/Python/C++/PHP. Would you be OK if I make it in Python? That way it will be easier to read, and to the point (as the purpose of Python is algorithmic implementation). I've authored books on Java, C++ and Data Structures, and have over 10 years of professional experience as a software engineer and consultant. I have written such programs multiple times, and wouldn't mind doing it again.