Insert and Delete Element from the queue..
Show the status of the queue
after every operation :-
1) Insert 5 Element
2) Delete
2 Element
#include<stdio.h>
#include<conio.h>
#define MAX 10
typedef struct Q
{
int R,F;
int data[MAX];
}Q;
void initialize(Q*p);
int empty(Q *p);
int full(Q *p);
void enqueue(Q *p,int x);
int dequeue(Q *p);
void print(Q *p);
void main()
{
Q q;
int i,x;
initialize(&q);
printf("\n Enter 5 element:");
for(i=1;i<=5;i++)
{
scanf("%d",&x);
if(!full(&q))
{
enqueue(&q,x);
}
else
{
printf("\n Queue is
full!....");
exit(0);
}
}
print(&q);
for(i=1;i<=2;i++)
{
if(!empty(&q))
{
x=dequeue(&q);
}
else
{
printf("\n Can not
delete....Queue is empty");
exit(0);
}
}
print(&q);
}
void initialize(Q *p)
{
p->R=-1;
p->F=-1;
}
int empty(Q *p)
{
if(p->R==-1)
return 1;
return 0;
}
int full(Q *p)
{
if(p->R==MAX-1)
return 1;
return 0;
}
void enqueue(Q *p,int x)
{
if(p->R==-1)
{
p->R=p->F=0;
p->data[p->R]=x;
}
else
{
p->R=p->R+1;
p->data[p->R]=x;
}
}
int dequeue(Q *p)
{
int x;
x=p->data[p->F];
if(p->R==p->F)
{
p->R=-1;
p->F=-1;
}
else
{
p->F=p->F+1;
return x;
}
}
void print(Q *p)
{
int i;
if(!empty(p))
{
printf("\n");
for(i=p->F;i<=p->R;i++)
printf("%d\t",p->data[i]);
}
}
Comments
Post a Comment