#include #include #include "QueueInterface.h" void InitializeQueue(Queue *Q) { Q->Front = NULL; Q->Rear = NULL; return; } int EmptyQ(Queue *Q) { return (Q->Front == NULL); } int FullQ(Queue *Q) { return 0; } void Insert(ItemType R, Queue *Q) { QueueNode *Temp; Temp = (QueueNode *) malloc(sizeof(QueueNode)); if (Temp == NULL) { printf("No more storage available\n"); return; } Temp->Item = R; Temp->RLink = NULL; if (Q->Rear == NULL) { Q->Front = Temp; Temp->FLink = NULL; Q->Rear = Temp; } else { Q->Rear->RLink = Temp; Temp->FLink = Q->Rear; Q->Rear = Temp; } return; } void Remove(ItemType *F, Queue *Q) { QueueNode *Temp; if (Q->Front == NULL) { printf("Attempt to remove item from empty queue\n"); return; } *F = Q->Front->Item; Temp = Q->Front; Q->Front = Temp->RLink; Q->Front->FLink = NULL; if (Q->Front == NULL) { Q->Rear = NULL; } free (Temp); return; }