Answer to Question #256118 in C for Jahnvi

Question #256118

Explain queue with the help of an example(Example required).


1
Expert's answer
2021-10-27T07:40:57-0400
A queue in C is a linear data structure to store and manipulate the data elements. It follows the order of First In First Out (FIFO).

In queues, the first element entered into the array is the first element to be removed from the array.

Example 

#include <stdio.h>
#include <stdlib.h>
struct Queue
{
	int *items;     
	int maxsize;    
	int front;      
	int rear;       
	int size;       
};
struct Queue* createNewQueue(int size)
{
	struct Queue *queue = NULL;
	queue = (struct Queue*)malloc(sizeof(struct Queue));
	queue->items = (int*)malloc(size * sizeof(int));
	queue->maxsize = size;
	queue->front = 0;
	queue->rear = -1;
	queue->size = 0;
	return queue;
}
int isEmpty(struct Queue *queue) {
	return queue->size==0;
}
int Peek(struct Queue *queue)
{
	if (isEmpty(queue))
	{
		printf("Queue is empty.\n");
	}else{
		return queue->items[queue->front];
	}
}
int isFull (struct Queue *queue) {
	return (queue->size == queue->maxsize);
}


void Enqueue(struct Queue *queue, int x)
{
	if (isFull(queue) == 1)
	{
		printf("Queue is full.\n");
	}else{
		queue->rear = (queue->rear + 1) % queue->maxsize;    
		queue->items[queue->rear] = x;
		queue->size++;
	}
}


void Dequeue(struct Queue *queue)
{
	if (isEmpty(queue))  
	{
		printf("Queue is empty.\n");
	}else{
		queue->front = (queue->front + 1) % queue->maxsize; 
		queue->size--;
	}
	
}
void Display (struct Queue *queue){
	int i;
	if (isEmpty(queue))  
	{
		printf("Queue is empty.\n");
	}else{
		printf("All values: \n");
		for(i = queue->front; i <= queue->rear; i++){
			printf("%d\n", queue->items[i]);
		}
	}
	
		
}


int main()
{
	struct Queue *queue = createNewQueue(5);


	Enqueue(queue, 1);
	Enqueue(queue, 2);
	Enqueue(queue, 3);
	Enqueue(queue, 4);


	Display(queue);


	Dequeue(queue);
	Dequeue(queue);
	Dequeue(queue);
	Dequeue(queue);


	Enqueue(queue, 5);
	Enqueue(queue, 6);


	if (isEmpty(queue)) {
		printf("The Queue is empty");
	}
	else {
		printf("The Queue is not empty");
	}


	getchar();
	getchar();
	return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS