#define LIST struct LISTNAME { int size; LISTTYPE* data; }; LISTNAME* LISTNEW() { LISTNAME* list = new LISTNAME[1]; list->size = 0; list->data = new LISTTYPE[4]; return list; } void listAdd(LISTNAME* list, LISTTYPE i) { int l = length(list->data); if(list->size >= l) { LISTTYPE* newData = new LISTTYPE[l * 2]; for(int i = 0; i < l; i++) { newData[i] = list->data[i]; } delete list->data; list->data = newData; } list->data[list->size] = i; list->size++; } int listGetLength(LISTNAME* list) { return list->size; } LISTTYPE listGetIndex(LISTNAME* list, int index) { return list->data[index]; } void listDelete(LISTNAME* list) { delete list->data; delete list; } #end #define LISTNAME IntList #end #define LISTTYPE int #end #define LISTNEW listNewInt #end LIST #define LISTNAME FloatList #end #define LISTTYPE float #end #define LISTNEW listNewFloat #end LIST