Home Tutorial Datastructure Queue implementation using linked list.

 
 

Queue implementation using linked list.
Posted on: June 19, 2010 at 12:00 AM
Advertisement
This tutorial demonstrate how to implement queue using linked list.

Description:

The advantage of using linked list is that there is no size limit. The size of queue grow and shrink as per insertion and deletion takes place.

Code:

# include <stdio.h>
# include <stdlib.h>
struct node
{
int data;
struct node *link;
};
void insert(struct node **front, struct node **rear , int value)
{
struct node *temp;
temp=(struct node *)malloc(sizeof(struct node));
	if(temp==NULL)
	{
	printf("No Memory available\n");
	exit(0);
	}
	temp->data = value;
	temp->link=NULL;
	if(*rear == NULL)
	{
	*rear = temp;
	*front = *rear;
	}
	else
	{
	(*rear)->link = temp;
	*rear = temp;
	}
 }

void deleteQ(struct node **front, struct node **rear , int *value)
{
struct node *temp;
if((*front == *rear)  && (*rear == NULL))
{
printf(" The queue is empty can not delete Error\n");
exit(0);
}
	*value = (*front)->data;
	temp = *front;
	*front = (*front)->link;
	if(*rear == temp)
	*rear = (*rear)->link;
	free(temp);
	}

void main()
{
struct node *front=NULL,*rear = NULL;
int n,value;
do
{
  do
  {
   printf("Enter the element to be inserted\n");
   scanf("%d",&value);
   insert(&front,&rear,value);
   printf("Enter 1 to continue\n");
   scanf("%d",&n);
  } while(n == 1);
  printf("Enter 1 to delete an element\n");
  scanf("%d",&n);
 	while( n == 1)
	{
	 deleteQ(&front,&rear,&value);
	 printf("The value deleted is %d\n",value);
	 printf("Enter 1 to delete an element\n");
	 scanf("%d",&n);
	}
	  printf("Enter 1 to continue\n");
	  scanf("%d",&n);
	} while(n == 1);
}

Output

Download this code

Advertisement

Related Tags for Queue implementation using linked list.:


Follow us on Twitter, or add us on Facebook or Google Plus to keep you updated with the recent trends of Java and other open source platforms.

Posted on: June 19, 2010

Recommend the tutorial

Advertisements Advertisements
 

 

 

DMCA.com