Monday, April 2, 2012

dqueue using array


#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;
}

No comments:

Post a Comment