Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Programming Problems: Simple Queue +--------------------------------------+ Your

ID: 3697748 • Letter: P

Question

         Programming Problems: Simple Queue         +--------------------------------------+         Your task in this assignment is complete Phase I of Project II. In Project II         with Phase I, you are asked to write a simple queue that handles integer data.         Please the skelton code that is included in this assignment for more detail.           Requirements         +--------------------------------------+          1. The queue should handle integer data.          2. The queue should be based on linked list.          3. Your code should demonistrate that you can perform the "enqueue" and             "dequeue" operation 

Explanation / Answer

#include<stdio.h>

#include<stdlib.h>

typedef struct Queue

{

int capacity;

int size;

int front;

int rear;

int *elements;

}Queue;

Queue * createQueue(int maxElements)

{

/* Create a Queue */

Queue *Q;

Q = (Queue *)malloc(sizeof(Queue));

/* Initialise its properties */

Q->elements = (int *)malloc(sizeof(int)*maxElements);

Q->size = 0;

Q->capacity = maxElements;

Q->front = 0;

Q->rear = -1;

/* Return the pointer */

return Q;

}

void Dequeue(Queue *Q)

{

   if(Q->size==0)

{

printf("Queue is Empty ");

return;

}

else

{

Q->size--;

Q->front++;

if(Q->front==Q->capacity)

{

Q->front=0;

}

}

return;

}

int front(Queue *Q)

{

if(Q->size==0)

{

printf("Queue is Empty ");

exit(0);

}

   return Q->elements[Q->front];

}

void Enqueue(Queue *Q,int element)

{

   if(Q->size == Q->capacity)

{

printf("Queue is Full ");

}

else

{

               Q->size++;

Q->rear = Q->rear + 1;

   if(Q->rear == Q->capacity)

{

Q->rear = 0;

}

Q->elements[Q->rear] = element;

}

return;

}

int main()

{

Queue *q1= createQueue(5);

Enqueue(q1,16);

Enqueue(q1,4);

Enqueue(q1,7);

printf("Front element is %d ",front(q1));

Enqueue(q1,9);

       Enqueue(q1,5);

Dequeue(q1);

Enqueue(q1,6);

printf("Front element is %d ",front(q1));

}