/*
  queue.h
  Header file defining the queue ADT
  Nadeem Abdul Hamid
  Fall 2006 - Berry College - CSC220
*/

#ifndef _QUEUE
#define _QUEUE

#include <stdbool.h>

/* define the QUEUE type; the actual structure will
   be defined somewhere in the implementation (.c file) */
typedef struct queue* QUEUE;

/* operations on queues */
QUEUE createQueue();
void destroyQueue(QUEUE q);

int queueSize(QUEUE q);
bool isEmptyQueue(QUEUE q);
bool enqueue(QUEUE q, void* item);
void* dequeue(QUEUE q);
void* queueFront(QUEUE q);
void* queueRear(QUEUE q);

#endif

