Reusable Data Structures for C