C program to implement Circular Queue.

C program to implement Circular Queue.

 
 #include <stdio.h>
#include <stdlib.h>
#define size 3

int Queue[size];

int front = -1, rear = -1, data, i;
int isFull()
{
	if (front==(rear+1)%size)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
int isEmpty()
{
	if (front == -1 && rear == -1)
	{
		return 1;
	}
	else
	{
		return 0;
	}
}
void enqueue()
{
	if (isFull())
	{
		printf("Queue is full.\n");
	}
	else
	{
		printf("Enter number to enqueue into queue: ");
		scanf("%d", &data);
		if (rear == -1 && front == -1)
		{
			front++;
		}
		rear=(rear+1)%size;
		Queue[rear] = data;
	}
 
    
}
void dequeue()
{
	if (isEmpty())
	{
		printf("Queue is Empty.");
	}
    else if (front==rear)
    {
        printf("%d is dequeue", Queue[front]);
        rear=-1;
        front=-1;
    }
    
	else 
	{

		printf("%d is dequeue", Queue[front]);
		front=(front+1)%size;
    

	}
}

void peek()
{
	if (isEmpty())
	{
		printf("Queue is Empty.\n");
	}
	else
	{
		printf("value of front is %d", Queue[front]);
	}
}
void display()
{
    int i=front;
	if (isEmpty())
	{
		printf("Queue is empty!!\n");
	}
	else
	{

		
       for (int i = front; i <=size; i=(i+1)%size)
	   {
		if (i==rear)
		{
			printf("%d", Queue[i]);
			break;
		}
		printf("%d ", Queue[i]);
		
	   }
		printf("\n\n");
	}
}
int main()
{
	int choice;

	while (1)
	{
		printf("1. Enqueue.\n");
		printf("2. Dequeue.\n");
		printf("3. Display all.\n");
		printf("4. Peek\n");
		printf("5. Exit.\n");
		printf(" Enter your choice :");
		scanf("%d", &choice);

		switch (choice)
		{
		case 1:
			enqueue();
			printf("\n");
			break;
		case 2:
			dequeue();
			printf("\n");
			break;
		case 3:
			display();
			printf("\n");
			break;
		case 4:
			peek();
			printf("\n");
			break;
		case 5:
			exit(0);
		default:
			printf("Invalid!!");
			
		}
	}
}

OUTPUT: