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: 3684699 • 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 n,size,front,rear;

int *elements; };

void enqueue(Queue,int);

int dequeue(Queue,int);

createQueue(int);

int front(Queue);

int main() {

int element; int max;

printf(“Enter max no of elements:”);

scanf(“%d ”,&max);

Queue *Q = createQueue(max);

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

printf(“Front element is %d ”,front(Q));

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

dequeue(Q);

printf(“Enter element:”);

scanf(“%d ”,&element);

enqueue(Q,element);

printf(“Front element is %d ”,front(Q));

}

createQueue(int max) {

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

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

Q ->size = 0;

Q ->n = max;

Q -> front = 0;

Q->rear = -1;

return Q;

}

void enqueue(Queue *Q,int element) {

if(Q == isFull()) {

printf(“ Queue is full ”);

return 0;

} else {

Q ->size ++;

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

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

}

return;

}

int front(Queue *Q) {

if(Q->size == 0) {

printf(“Queue is empty”);

exit(0);

}

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

}

int dequeue(Queue *Q) {

if(Q==isEmpty()) {

printf(“Queue is empty”);

return 0;

} else

{

int element = Q[front]->elements;

Q->size --;

Q ->front ++;

return element;

} }