Data Structures in C (Loostly following UVA CS 2150)