char Queue_removeitem(struct Queue *pQueue) { char result = 0; if (!Queue_isempty(pQueue)) { unsigned head; head = ((struct _Queue *)pQueue)->head; result = ArrayADT_getElement(((struct _Queue *)pQueue)->array, head); ((struct _Queue *)pQueue)->head = (head + 1) % ArrayADT_getcapacity(((struct _Queue *)pQueue)->array); ((struct _Queue *)pQueue)->size--; } return result; }