Tuesday, October 7, 2008

Queue using Arrays

/*Implementation of queue using array*/
#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 return(1);
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: