#include "queue.h" bool InitQueue(Queue * q) { q->base = (int *) malloc (sizeof(int) * MAXSIZE); if (!q->base) { fprintf(stderr,"Failed to allocate memory!\n"); return false; } q->front = q->rear = 0; } bool EnQueue(Queue * q, int e) { if ((q->rear + 1)%MAXSIZE == q->front) { fprintf(stderr,"Queue is full!\n"); return false; } q->base[q->rear] = e; q->rear = (q->rear + 1) % MAXSIZE; return true; } bool DeQueue(Queue * q, int * e) { if (q->front == q->rear) { fprintf(stderr,"Queue is empty"); return false; } *e = q->base[q->front]; q->front = (q->front + 1) % MAXSIZE; return true; } int LengthQueue(Queue * q) { return (q->rear - q->front + MAXSIZE) % MAXSIZE; } int GetHead(Queue * q) { if (q->front != q->rear) return q->base[q->front]; return -1; }