Showing posts with label Array Implementation of circular queue using modulous operator. Show all posts
Showing posts with label Array Implementation of circular queue using modulous operator. Show all posts

Friday, 20 January 2017

Array Implementation of circular queue using modulous operator : C Program

#include <stdio.h>

#include <stdlib.h>

#define MAX 5

int queue[MAX],f=-1,r=-1;

void enq();

void deq();

void display();

main()

{

 int n,i;

 printf("enter the number of elements");

 scanf("%d",&n);

 for(i=1;i<=n;i++)

  enq();

 display();

 printf("\nAfter one deletion queue elements are\n");

 deq();

 display();

}

void enq()
{

 int val;

 if(f == (r+1)%MAX)
 {
     printf("Queue full");
 }
 else 
 {
     if(f == -1 && r == -1)
        f=r=0;
     else
        r=(r+1)%MAX;

     printf("enter the data to be entered\n");

     scanf("%d",&val);

     queue[r]=val;
 }
}

void deq()
{

 if(f==-1)
       printf(" Queue is empty or underflow");
 else
 {
      printf("deleted element = %d",queue[f]);

      if(f ==r)

          f=r=-1;

      else

         f=(f+1)%MAX;
  }
}

void display()
{

int i;
if(f<=r)
{
   for(i=f; i<=r;i++)
          printf("%d\t",queue[i]);
}
else
{
   for(i=f;i<MAX;i++)
           printf("%d\t",queue[i]);
   for(i=0;i<=r;i++)
           printf("%d\t",queue[i]);
}
}



Output: