data structures

Redo of the homework with a proper pull request.  No changes to the code itself.