C implementations of data structures to further my understanding of how they work