Thursday, October 21, 2010

/*Circular Queue implementation using arrays*/

/*Circular Queue implementation using arrays*/
struct queue
{
int a[10];
int front,rear;
int count;
}
main()
{
struct queue q;
int ele,ch;
q.front=q.rear=-1;
q.count=0;
clrscr();
while(1)
{
printf("\nCircular Queue Operations\n");
printf("1.INSERT\n");
printf("2.DELETE\n");
printf("3.DISPLAY\n");
printf("4.COUNT\n");
printf("5.EXIT\n");
printf("Enter your choice : ");
scanf("%d",&ch);
switch(ch)
{
case 1: printf("Enter the element you want to insert");
scanf("%d",&ele);
insert(&q,ele);
break;
case 2: ele=delete(&q);
if(ele==-1)
printf("Queue Empty. No elements to delete.");
else
printf("The deleted element is %d",ele);
break;
case 3: display(q);
break;
case 4: printf("The total no. of elements in the queue are %d",q.count);
break;
case 5: exit();
}
}
}
insert(struct queue *q,int ele)
{
if(q->count==10)
printf("Queue full. Insert not possible.");
else
{
if(q->rear==9)
q->rear=-1;
q->a[++q->rear]=ele;
q->count++;
}
}
delete(struct queue *q)
{
if(q->count==0)
return -1;
else
{
if(q->front==9)
q->front=-1;
q->count--;
return q->a[++q->front];
}
}
display(struct queue q)
{
if(q.count==0)
printf("No elements to display.");
else
while(q.count--!=0)
{
if(q.front==9)
q.front=-1;
printf(" %d ",q.a[++q.front]);
}
}


No comments:

Post a Comment