Linear Queue using Array in C

Description

This program is used to Insert (Enqueue) and Delete (Dequeue) elements from a Linear Queue using Array in C.

#include<stdio.h>
#include<stdlib.h>
#define MAX 5
int queue[MAX];
int front = -1, rear = -1;
void enqueue();
void dequeue();
void display();

main()
{
 int choice;
 do
 {
  printf("\n----MENU----\n");
  printf("1.enqueue\n2.dequeue\n3.display\n4.EXIT\n");
  printf("\nEnter your choice\n");
  scanf("%d",&choice);
  switch(choice)
  {
   case 1:enqueue();break;
   case 2:dequeue();break;
   case 3:display();break;
   case 4:printf("\n~~~~Thank You~~~~\n");break;
   default:printf("\nINVALID INPUT !!!!\n");
  }
 }while(choice!=4);
}
void enqueue()
{
 int value;
 if(rear==MAX-1)
 printf("\nOVERFLOW\n");
 else
 {
  printf("\nEnter value to be inserted\n");
  scanf("%d",&value);
  
  if(front==-1&&rear==-1)
  {
   front=0;
   rear=0;
  }
  else 
   rear++;
  queue[rear]=value;
  display();
 }

 
}

void dequeue()
{
 
 if(front==-1)
 printf("\nUNDERFLOW\n");
 else{
  if(front==rear)
  {
   front=-1;
   rear=-1;
  }
  else
   front++;
  display();
 }
}

void display()
{
 int left,right;
 left=front;
 right=rear;
 if(left==-1)
 printf("\nqueue is empty \n");
 else
 {
  printf("Elements are:\t");
  while(left!=right)
  {
   printf("%d\t",queue[left]);
   left++;
  }printf("%d\t",queue[left]);
 }
}

OUTPUT

Queue Output 1 Queue Output 2
Queue Output 3 Queue Output 4

Labels: