Referred From : PRITHVIRAJ JAIN
#include<stdio.h>
#include<stdlib.h>
#define MAX 5
int front=0,rear=-1,choice,i,j;
char ele,q[MAX];
void insert()
{
if((front==0&&rear==MAX-1)||(front>0&&rear==front-1))
printf("QUEUE OVERFLOW\n");
else
{
printf("ENTER THE ELEMENT : \n");
scanf(" %c",&ele);
if(rear==MAX-1&&front>0)
{
rear=0;
q[rear]=ele;
}
else if((front==0&&rear==-1)||(rear!=front-1))
q[++rear]=ele;
}
}
void delete()
{
if(front==0&&rear==-1)
printf("QUEUE UNDERFLOW\n");
else
{
if(front==rear)
{
ele=q[front];
front=0;
rear=-1;
}
else if(front==MAX-1)
{
ele=q[front];
front=0;
}
else
ele=q[front++];
printf("THE DELETED ELEMENT IS %c\n",ele);
}
}
void display()
{
if(front==0&&rear==-1)
printf("QUEUE IS EMPTY\n");
else
{
printf("THE QUEUE ELEMENTS ARE :\n");
if(front>rear)
{
for(i=front;i<=MAX-1;i++)
printf("%c\n",q[i]);
for(j=0;j<=rear;j++)
printf("%c\n",q[j]);
}
else
{
for(i=front;i<=rear;i++)
printf("%c\n",q[i]);
}
}
}
void main()
{
while(1)
{
printf("\n\n-----MENU-----\n\n1. ENQUEUE\n\n");
printf("2. DEQUEUE\n\n3. DISPLAY\n\n");
printf("4. EXIT\n\nENTER YOUR CHOICE :\n");
scanf("%d",&choice);
switch(choice)
{
case 1:insert();
break;
case 2:delete();
break;
case 3:display();
break;
case 4:exit(0);
default:printf("INVALID CHOICE\n");
}
}
}
Referred From : GURUPRASAD M S
#include<stdio.h>
#include<stdlib.h>
#define max 4
void insert();
void delete();
void display();
char cq[max];
int front=-1,rear=-1;
void main()
{
int choice;
while(1)
{
printf("\nPress 1.INSERT \t 2.DELETE \t 3.DISPLAY \t 9.EXIT\n");
printf("Enter your choice \n");
scanf("%d",&choice);
switch(choice)
{
case 1:insert(); break;
case 2:delete(); break;
case 3:display(); break;
case 9:exit(0);
default: printf("*******************INVALID CHOICE*************\n");
}
}
}
void display()
{
int i;
if(front==-1)
{
printf("**************************CIRCULAR QUEUE EMPTY**************************\n");
}
else
{
printf("\n CIRCULAR QUEUE contents are \n");
printf("Front[%d]---",front);
for(i=front;i!=rear;i=(i+1)%max)
printf("%c\t",cq[i]);
printf("%c",cq[i]);
printf("---[%d]Rear",rear);
}
}
void delete()
{
char element;
if(front==-1)
{
printf("**************************CIRCULAR QUEUE UNDERFLOW**************************\n");
}
else
{
element=cq[front];
printf("Deleted element from the queue is:%c\n",element);
if(front==rear)
{
front=rear=-1;
}
else
{
front=(front+1)%max;
}
}
}
void insert()
{
char element;
if(front==(rear+1)%max)
{
printf("**************************CIRCULAR QUEUE OVERFLOW**************************\n");
}
else
{
printf("Enter the element:\n");
scanf(" %c",&element);
if(front==-1)
{
front=rear=0;
}
else
{
rear=(rear+1)%max;
}
cq[rear]=element;
}
}
OUTPUT: