#include
#include
#define MAX 5
void enqueue();
void dequeue();
void view();
int isempty();
int isfull();
struct queue
{
int front,rear,a[MAX];
}q;
int main()
{ int n,p,f;
q.rear=-1;
q.front=0;
do
{
printf("\n\n\n\nenter your choice number:\n"
"1.enqueue an element\n"
"2.dequeue an element\n"
"3.view and count no.of element\n"
"4.check, is queue empty?\n"
"5.check, is queue full?\n"
"6.end the program\n");
scanf("%d",&n);
switch(n)
{
case 1:
enqueue();
break;
case 2:
dequeue();
break;
case 3:
view();
break;
case 4:
p=isempty();
if(p==1)
printf("the queue is empty\n");
else
printf("the queue is not empty\n");
break;
case 5:
f=isfull();
if(f==1)
printf("the queue is full\n");
else
printf("the queue is not full\n");
break;
case 6:
printf("\t---------------THANKS FOR USING-----------------\n\n");
break;
default:
printf("please enter the number 1 to 5 only :\n");
scanf("%d",&n);
}
}while(n<6);
return 0;
}
void enqueue()
{
int s,x;
s=isfull();
if(s==1)
{
printf("\nqueue is overflow\n");
}
else
{
printf("enter the element\n");
scanf("%d",&x);
q.a[++q.rear]=x;
}
return;
}
int isfull()
{
if(q.rear==MAX-1)
return(1);
else
return(0);
}
void dequeue()
{
int s,x;
s=isempty();
if(s==1)
{
printf("the queue is underflow\n");
}
else
{
x=q.a[q.front];
if(q.front==q.rear) // if it is the only element
{
q.front=0;
q.rear=-1;
}
else
{
q.front=q.front+1;
}
printf("the dequeued element is %d\n",x);
}
return;
}
int isempty()
{
if(q.rear
else
return(0);
}
void view()
{
int i,count;
count=q.rear-q.front+1;
printf("the number of elements in the queue is %d\n\n",count);
printf("elments in the queue are :\n");
for(i=q.front;i<=q.rear;i++)
{
printf("\t\t\t\t%d\n",q.a[i]);
}
return;
}
No comments:
Post a Comment