#ifndef INDEX_H #define INDEX_H /* This is the header file for Index and Index-related functionality. */ struct Index { char *ids; // memory of free spots int size; // size int bias; // "weight" that shows where the most free indexes are from the center }; int initIndex(struct Index *index, int size); int clearIndex(struct Index *index); int growIndex(struct Index *index, int size); int addIndex(struct Index *index, int id); int remIndex(struct Index *index, int id); int toggleIndex(struct Index *index, int id); int getIndex(struct Index *index, int id); // find and return first free index int acquireIndex(struct Index *index); #endif