You are on page 1of 3

/* C Program to implement double ended queue.

*/
/* It is written in TURBOC v2.0, for ANSI or other C compiler adjust
*/ /* header files and some functions like getch() etc. accordingly. */
/* Programmed by SRIJIT CHOWDHURY, MCA */
/* For any query feel free to e-mail me at src.dcs.dcs@gmail.com */

#include<stdio.h>
#include<conio.h>
# define SIZE 10
void insertitem(int *r, int item, int q[])
{
int t;
if(*r==SIZE-1)
{
printf("Queue is OVERFLOW....");
return;
}
else
{
*r=*r+1;
q[*r]=item;
}
return;
}
int deleteitem(int *f, int *r, int q[])
{
int t;
if(*r==-1)
{
printf("Queueis UNDERFLOW.....");
return(0);
}
else
{
t=q[*f];
*f=*f+1;
if(*f>*r)
{
*f=0;
*r=-1;
}
}
return(t);

void insert_front(int item,int *f,int q[])


{
if(*f==0)
{
printf("QYUEUE is overflow");
return;
}
*f=*f-1;
q[*f]=item;
return;
}
int delete_rear(int *f,int *r,int q[])
{
int t;
if(*r==-1)
{
printf("Queue is Underflow");
return(0);
}
t=q[*r];
*r=*r-1;
if(*f>*r)
{
*f=0;
*r=-1;
}
return(t);
}

void display(int *f, int *r, int q[])


{
int i;
if(*r==-1)
{
printf("There is No element ....");
return;
}
else
{
for(i=*f;i<=*r;i++)
{
printf("%d\n",q[i]);
}
}
return;
}

void main()
{
int f=0;
int r=-1;
int m,t,p,q[SIZE];
clrscr();
do
{
printf("\n MENU \n");
printf("\n=====*********===== \n\n");
printf(" 1. Push\n");
printf(" 2. Push (Front)\n");
printf(" 3. Pop\n");
printf(" 4. Pop (Rear)\n");
printf(" 5. Display\n");
printf(" 6. Exit\n\n");
printf("Enter Your choice::");
scanf("%d",&m);
switch(m)
{
case 1:
printf("Enter One element...");
scanf("%d",&t);
insertitem(&r,t,q);
break;
case 2:
printf("Enter One element...");
scanf("%d",&t);
insert_front(t,&f,q);
break;
case 3:
if(r<f)
{
printf("Queue is EMPTY...");
break;
}
p=deleteitem(&f,&r,q);
printf("The deleted item is => %d",p);
break;
case 4:
if(r<f)
{
printf("Queue is EMPTY...");
break;
}
p=delete_rear(&f,&r,q);
printf("The deleted item is => %d",p);
break;
case 5:
display(&f,&r,q);
break;
case 6:
exit(0);
default:
printf("Invalid Choice... TRY AGAIN.");
break;
}
}while(m!=6);
getch();
}

You might also like