Tuesday 19 May 2015

C program to implement dequeue

#include<stdio.h>
#define max 5

void insert_rear(int q[],int *f,int *r)
{
if(*r==max-1)
printf("Queue Overflow!!\n");
else
{
printf("Enter the item to add at rear-end: ");
scanf("%d",&q[++*r]);
}
}

void insert_front(int q[],int *f,int *r)
{
if(*f==0 && *r==-1)
{
*r++;
printf("Enter the item to add at front-end: ");
scanf("%d",&q[*r]);
}

else if(*f!=0)
{
*f=*f-1;
printf("Enter the item to add at front-end: ");
scanf("%d",&q[*f]);
}
else
printf("Queue Overflow!!\n");
}

void delete_front(int q[],int *f,int *r)
{
if(*f>*r)
printf("Queue Underflow!!\n");
else
{
printf("The item deleted at rear-end is: %d\n",q[*f]);
*f=*f+1;
}
}

delete_rear(int q[],int *f,int *r)
{
if(*f>*r)
printf("Queue Underflow!!\n");
else
{
printf("The item deleted at front-end is: %d\n",q[*r]);
*r=*r-1;
}
}

void display(int q[],int f,int r)
{
int i;
if(f>r)
printf("Queue Underflow!!\n");
else
{
printf("The Queue elements are: ");
for(i=f;i<=r;i++)
printf("%d ",q[i]);
printf("\n");
}
}

int main()
{
int q[max],f=0,r=-1,ch;

printf("****DEQUEUE****\n");
while(1)
{
printf("*******MENU********\n");
printf("1. Insert-Rear\n2. Insert-Front\n3. Delete-Front\n4. Delete Rear\n5. Display\n6. Exit\n");
printf("Enter your choice: ");
scanf("%d",&ch);

switch(ch)
{
case 1: insert_rear(q,&f,&r);
break;

case 2: insert_front(q,&f,&r);
break;

case 3: delete_front(q,&f,&r);
break;

case 4: delete_rear(q,&f,&r);
break;

case 5: display(q,f,r);
break;

case 6: exit(0);

default: printf("Invalid menu option!!\n");
}
}
return;
}

No comments:

Post a Comment