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));
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.