#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)
{
rear=0;
}
else
{
rear++;
}
if(rear==0)
{
printf("\nQueue Overflow!");
exit(1);
}
Q[rear]=data;
if(front==-1;
{
front++;
}
}
void del(int Q[])
{
if(front<0)
{
printf("\nQueue Underflow!\n");
exit(1);
}
else
{
printf("\nDeleted element: %d\n",Q[front]);
if(front==rear)
{
front=rear=-1;
}
else
{
if(front==SIZE-1)
{
front=0;
}
else
{
front++;
}
}
}
}
void display(int Q[])
{
int position;
if(front>=0)
{
printf("\nTotal Size of the Queue: %d\n");
printf("\nQueue after operation performed: \n\n");
if(front<=rear)
{
for(position=front;position<=rear;position++)
{
printf("%d\t",Q[position]);
}
}
else
{
for(position=front;position<=SIZE;position++)
{
printf("%d\t",Q[position]);
}
for(position=0;position<=rear;position++)
{
printf("%d\t",Q[position]);
}
}
printf("\n\nFront = %d\t Rear = %d\n",front,rear);
}
Saturday, 28 April 2012
Array Implementation of Circular Queue in C
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment