#include<stdio.h>
#include<conio.h>
#define MAX 5
struct queue
{
int a[5];
int rear,front;
}
st;
void enqueue(int
x);
void dequeue();
void display();
void main()
{
int op,x;
st.rear=st.front=-1;
do
{
printf("n1.Insertion\n2.Deletion\n3.Print\n4.Exit");
printf("\nEnter choice=");
scanf("%d",&op);
switch(op)
{
case
1:if((st.rear+1)%MAX==st.front)
printf("\nQueue is
full");
else
enqueue(x);
break;
case 2:if(st.front==-1)
printf("\nEmpty
queue");
else
{
dequeue();
}
break;
case 3:display();
break;
}
}while(op!=4);
getch();
}
void enqueue(int
x)
{
int i;
printf("\nEnter data:");
scanf("%d",&x);
if(st.rear==-1)
{
st.rear++;
st.front++;
st.a[st.rear]=x;
}
else
{
i=st.rear;
while(x>st.a[i])
{
st.a[(i+1)%MAX]=st.a[i];
i=(i-1+MAX)%MAX;
if((i-1)%MAX==st.front)
break;
}
i=(i+1)%MAX;
st.a[i]=x;
st.rear=(st.rear+1)%MAX;
}
}
void dequeue()
{
int y;
if(st.rear==st.front)
{
y=st.a[st.front];
st.front=-1;
st.rear=-1;
}
else
{
y=st.a[st.front];
st.front=(st.front+1)%MAX;
}
printf("\nDeleted
element=%d",y);
}
void display()
{
int i;
if(st.rear==-1)
printf("\nEmpty queue");
else
{
printf("\nQueue is:");
i=st.front;
while(i!=st.rear)
{
printf("<%d>",st.a[i]);
i=(i+1)%MAX;
}
printf("<%d>",st.a[st.rear]);
}
}
No comments:
Post a Comment