Tuesday, December 22, 2015

Write A Program to implement operation of circular queue using array.

Solution:-
 
#include<stdio.h>
#include<conio.h>
#include<process.h>
# define maxsize 5
int queue[maxsize];
int rear=-1;
int front=-1;
void cenque( );
void cdeque( );
void display( );
void main( )
{
  int choice;
  clrscr( );
  do
  {
            printf("\n 1.ENQUEUW");
            printf("\n 2.DEQUEUE");
            printf("\n 3.DISPLAY");
            printf("\n 4.EXIT");
            printf("\n Enter your choice: \t");
            scanf("%d",&choice);
            switch(choice)
            {
                case 1: cenque( );
                        break;
                case 2: cdeque( );
                        break;
                case 3: display( );
                        break;
                case 4: exit(0);
                        break;
            }
   }
   while(choice!=4);
   getch( );
}
void cenque( )
{
  int item;
  if(front==(rear+1)%maxsize)
  printf("\n CIRCULAR QUEUE OVERFLOW");
  else
  {
       printf("\n Enter item: \t");
       scanf("%d",&item);
       if(front==-1)
       {
            rear=0;
            front=0;
       }
       else
       rear=(rear+1)%maxsize;
       queue[rear]=item;
       printf("\n %d is inserted successfully",queue[rear]);
   }
}
void cdeque( )
{
  int item;
  if(front==-1)
  printf("\n CIRCULAR QUEUE UNDERFLOW");
  else
  {
      item=queue[front];
      if(rear==front)
      {
         front=-1;
         rear=-1;
      }
      else
      front=(front+1)%maxsize;
      printf("\n %d is deleted successfully",item);
   }
}
void display( )
{
  int i;
  if(rear==-1)
  printf("\n NO ITEM");
  else
  {
            if(rear>=front)
            {
              for(i=front;i<=rear;i++)
              printf("%d \t",queue[i]);
            }
            else
            {
              for(i=front;i<maxsize;i++)
              printf("%d \t",queue[i]);
              for(i=0;i<=rear;i++)
              printf(" %d \t",queue[i]);
            }
   }
}