#include "array.h" #include #include #include #include array::array(int numberofcounters) { assert(numberofcounters >= 1); counters = NULL; ncounters = numberofcounters; strings = NULL; nin = 0; } array::~array() { if (counters) free(counters); if (strings) free(strings); } void array::setcounter(int index, int subindex, int value) { counters[(index * ncounters) + subindex] = value; } int array::addcounter(int index, int subindex, int value) { return counters[(index * ncounters) + subindex] += value; } int array::getcounter(int index, int subindex) { return counters[(index * ncounters) + subindex]; } int array::addstring(char *string, int defvalue) { int loop; for(loop=0; loop 1) { int dummy = (subindex + 1) % ncounters; if (getcounter(loop, dummy) < getcounter(loop2, dummy)) swap_entry(loop, loop2); } } } } void array::swap_entry(int index1, int index2) { char *dummy = strings[index1]; strings[index1] = strings[index2]; strings[index2] = dummy; for(int loop=0; loop