4.2.5 Remove item

Assuming we don't want to downsize a queue even when it is possible, removing an item is relatively easy compared to adding item:

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;
}



Copyright © 2006-10-23 by Tak Auyeung