Dynamic Queue

Structure of Dynamic Queue.

struct link

{

	int info;

	struct link *next;

}*front,*rear;






Linked list implementation of Queue


#include<stdio.h>

#include<conio.h>

struct link

{

	int info;

	struct link *next;

}*front,*rear;



void insert_q(int no);



int delete_q();



void display();



void main()

{

	int ch,no;

	rear=NULL;

	front=NULL;

	clrscr();

	while(1)

	{

		printf("\n Dynemic Queue Menu");

		printf("\n 1->Insert ");

		printf("\n 2->Delete ");

		printf("\n 3->Display");

		printf("\n 4->Exit   ");

		printf("\n enter your choice :  ");

		scanf("%d",&ch);



		switch(ch)

		{

			case 1:

			{

				printf("Enter The Element Value\n");

				scanf("%d",&no);

				insert_q(no);

				printf("\n queue after insertion");

				display();

				break;

			}

			case 2:

			{

				no=delete_q();

				printf("\n The deleted element = %d",no);

				printf("\n queue after deletion");

				display();

				break;

			}



			case 3:

			{

				printf("\n Queue is as follow");

				display();

				break;

			}



			case 4:

			{

				printf("Exit....!!!!");

				getch();

				exit(0);

				break;

			}

			default :

			      printf("\n Wrong choice...!!!! " );



		   }    



	   } 



} 



void insert_q(int no)

{

		struct link *new1;

		new1=(struct link*)malloc(sizeof(struct link));

		new1->info=no;

		new1->next=NULL;

		if(rear==NULL||front==NULL)

		{

			front=new1;

		}

		else

		{

			rear->next=new1;

		}

		rear=new1;



}



int delete_q()

{

	struct link *t;

	int no;



	if(front==NULL||rear==NULL)

	{

		printf("\n queue is Under Flow");

		getch();

		return;



	}



	else

	{

		t=front;

		no=t->info;

		front=front->next;

		free(t);



	}

	return(no);



}



void display()



{

	struct link *t;

	t=front;



	if(front==NULL||rear==NULL)

	{

		printf("\nQueue is empty");

		getch();

		exit(0);



	}



	while(t!=NULL)

	{

		printf("\n %d",t->info);

		t=t->next;

	}



}




insert delete