void Queue_additem(struct Queue *pQueue, char v) { unsigned tail; if (((struct _Queue *)pQueue)->size == ArrayADT_getcapacity(((struct _Queue *)pQueue)->array)) { // need to increase the capacity (use resize) and reorganize // this makes a good homework assignment! } tail = ((struct _Queue *)pQueue)->head + ((struct _Queue *)pQueue)->size; tail %= ArrayADT_getcapacity(((struct _Queue *)pQueue)->array); ArrayADT_setelement(((struct _Queue *)pQueue)->array, tail, v); ((struct _Queue *)pQueue)->size++; }