Saturday, 28 April 2012

Array Implementation of Queue in C


#include<stdio.h>
#include<conio.h>
#define SIZE 5
int front,rear;
void main()
{
 void insert(int[],int);
 void del(int[]);
 void display(int[]);
 int Q[SIZE],data;
 char choice;
 front=rear=-1;
 do
 {
  clrscr();
  printf("\nQueue size = %d\n",SIZE);
  printf("\nEnter : i - Insert, d - Delete, q - Quit :");
  scanf("%c",&choice);
  switch(choice)
  {
   case 'i':
   case 'I':
    printf("\nEnter the data:");
    scanf("%d",&data);
    insert(Q,data);
    break;
   case 'd':
   case 'D':
    del(Q);
    break;
   case 'q':
   case 'Q':
    exit(0);
   default:
    printf("\nInvalid Option!\n\n");
    getch();
    continue;
  }
  printf("\nQueue after the operation performed:\n\n");
  display(Q);
  fflush(stdin);
  getch();
 }while(1);
}

void insert(int Q[],int data)
{
 if(rear==SIZE-1)
 {
  printf("\nInsertion not possible\n");
  exit(1);
 }
 else
 {
  Q[++rear]=data;
 }
 if(rear==0)
 {
  front=rear;
 }
 if(rear==SIZE-1)
 {
  printf("\nNo element will be inserted next time.\n\n");
 }
}

void del(int Q[])
{
 if(front<0)
 {
  printf("\nDeletion not possible\n");
  exit(1);
 }
 else
 {
  printf("\nDeleted element: %d\n",Q[front]);
  if(front==rear)
  {
   front=rear=-1;
  }
  else
  {
   front++;
  }
 }
}

void display(int Q[])
{
 int position;
 if(front>=0)
 {
  for(position=front;position<=rear;position++)
  {
   printf("%d\t",Q[position]);
  }
 }
 else
 {
  printf("Is empty\n");
 }
 printf("\n\nFront = %d\t Rear = %d\n",front,rear);
}

No comments:

Post a Comment