Insertion and deletion of an element from the circular queue
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void insert();
void del();
void display();
int front = -1;
int rear = -1;
int max=5;
int queue[5];
void main ()
{
clrscr();
printf("<<---- WelCome Back Coding Adda--- >>\n");
printf("Perform operations on circuler queue");
printf("\n\t*******************************\n");
printf("\t* 1. Insert element *\n");
printf("\t* 2. Delete element *\n");
printf("\t* 3. display *\n");
printf("\t* 4. Exit *\n");
printf("\t*******************************");
int ch;
while(1)
{
printf("\n\t\t<< ener your choice >> ");
scanf("%d",&ch);
switch(ch)
{
case 1:
insert();
display();
break;
case 2:
del();
display();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("\n------- Enter valid choice??--------\n");
}
}
}
void insert()
{
int item;
printf(" Enter the element - ");
scanf("%d",&item);
if((rear+1)%max == front)
{
printf("\n\t --- OVERFLOW --- \n");
}
else if(front == -1 && rear == -1)
{
front = 0;
rear = 0;
}
else if(rear == max -1 && front != 0)
{
rear = 0;
}
else
{
rear = (rear+1)%max;
}
queue[rear] = item;
}
void del()
{
int item;
if(front == -1 & rear == -1)
{
printf("\n\t --- UNDERFLOW --- \n");
}
else if(front == rear)
{
front = -1;
rear = -1;
}
else if(front == max -1)
{
front = 0;
}
else
front = front + 1;
}
void display()
{
int i;
if(front == -1)
printf(" --- Circular Queue is Empty!!! ---");
else
{
i = front;
printf(" Circuler Queue Elements are :- ");
if(front <= rear)
{
while(i <= rear)
printf("%d ",queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
}
else
{
while(i <= max - 1)
printf("%d ", queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
i = 0;
while(i <= rear)
printf("%d ",queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
}
}
}
Output:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void insert();
void del();
void display();
int front = -1;
int rear = -1;
int max=5;
int queue[5];
void main ()
{
clrscr();
printf("<<---- WelCome Back Coding Adda--- >>\n");
printf("Perform operations on circuler queue");
printf("\n\t*******************************\n");
printf("\t* 1. Insert element *\n");
printf("\t* 2. Delete element *\n");
printf("\t* 3. display *\n");
printf("\t* 4. Exit *\n");
printf("\t*******************************");
int ch;
while(1)
{
printf("\n\t\t<< ener your choice >> ");
scanf("%d",&ch);
switch(ch)
{
case 1:
insert();
display();
break;
case 2:
del();
display();
break;
case 3:
display();
break;
case 4:
exit(0);
break;
default:
printf("\n------- Enter valid choice??--------\n");
}
}
}
void insert()
{
int item;
printf(" Enter the element - ");
scanf("%d",&item);
if((rear+1)%max == front)
{
printf("\n\t --- OVERFLOW --- \n");
}
else if(front == -1 && rear == -1)
{
front = 0;
rear = 0;
}
else if(rear == max -1 && front != 0)
{
rear = 0;
}
else
{
rear = (rear+1)%max;
}
queue[rear] = item;
}
void del()
{
int item;
if(front == -1 & rear == -1)
{
printf("\n\t --- UNDERFLOW --- \n");
}
else if(front == rear)
{
front = -1;
rear = -1;
}
else if(front == max -1)
{
front = 0;
}
else
front = front + 1;
}
void display()
{
int i;
if(front == -1)
printf(" --- Circular Queue is Empty!!! ---");
else
{
i = front;
printf(" Circuler Queue Elements are :- ");
if(front <= rear)
{
while(i <= rear)
printf("%d ",queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
}
else
{
while(i <= max - 1)
printf("%d ", queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
i = 0;
while(i <= rear)
printf("%d ",queue[i++]);
printf("\n \tFront - %d \t and\t Rear %d",front,rear);
}
}
}
Output:

No comments:
Post a Comment