#include< stdio.h>
int dqueue[10],front,rear,choice,max=10,element;
void add_front();
void add_rear();
void delete_front();
void delete_rear();
void display();
int count();
void main()
{
front=-1;rear=0;
while(1)
{
choice=menu();
switch(choice)
{
case 1: add_front();getch();break;
case 2: add_rear();getch();break;
case 3: delete_front();getch();break;
case 4: delete_rear();getch();break;
case 5: display();getch();break;
case 6: printf("\nno of items in dqueue : %d\n",count());getch();break;
case 7: exit();
default : printf("\nInvalid option...\n");getch();
}
}
}
int menu()
{
clrscr();
printf("Queue elements : front=%d,rear=%d\n\n",front,rear);
display();
printf("\n\nMENU\n---------------------\n1. add item at front\n2. add item at back");
printf("\n3. delete item from front\n4. delete item from rear\n5. display items\n6. count items\n7. exit");
printf("\nenter your choice : ");
scanf("%d",&choice);
return choice;
}
void add_front()
{
if(front<=-1)
{ printf("\noperation failed.... can not add front\n");
front=-1;
}
else
{
printf("\nenter element to add at front : ");
scanf("%d",&element);
dqueue[front+1]=element; printf("\n%d\n",front);
front--;
}
}
void add_rear()
{
if(rear>=max)
{
printf("\noperation failed....can not add at rear\n");
rear=max;
}
else
{
printf("\nenter element to add at rear : ");
scanf("%d",&element);
dqueue[rear]=element;
rear++;
}
}
void delete_front()
{
if(count()>0)
{
dqueue[front]=NULL;
front++;
}
else
{ printf("\noperation failed....can not del at front\n");
front=-1;rear=0;
}
}
void delete_rear()
{
if(count()>0)
{
dqueue[rear]=NULL;
rear--;
}
else
{ printf("\noperation failed....can not del at rear\n");
front=-1;
rear=0;
}
}
void display()
{
int temp;
temp=front;
if(count()==0)
{
printf("\ndqueue empty\n");
return;
}
else
{
while(temp<rear)
{
printf("%d ",dqueue[temp+1]);
temp++;
}
}
}
int count()
{
int temp;
temp=rear-front-1;
if(temp>0)
return temp;
else
return 0;
}
Monday, April 2, 2012
dqueue using array
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment