various data structures in C