// fifo.h  -- A queue of integers (dynamic storage)

struct node{
	node *next;
	int value;
};

struct fifo{
	node * head;	// whence we dequeue
	node * tail;	// where we enqueue
};

// create and initialize a fifo
void createFifo(fifo& queue);

// enqueue a new value into an existing fifo
void enqueue(fifo& queue, int who);

// dequeue a value from a fifo
int dequeue(fifo& queue);

// check if a fifo is empty
int isempty(fifo& queue);