A queue based on the linked list : Queue « Data Structure « C Tutorial

Home
C Tutorial
1.Language
2.Data Type
3.String
4.printf scanf
5.Operator
6.Statement
7.Array
8.Function
9.Structure
10.Pointer
11.Memory
12.Preprocessor
13.File
14.Data Structure
15.Search Sort
16.Wide Character String
17.assert.h
18.ctype.h
19.math.h
20.setjmp.h
21.signal.h
22.stdio.h
23.stdlib.h
24.string.h
25.time.h
26.wctype.h
C / ANSI-C
C++
C++ Tutorial
Visual C++ .NET
C Tutorial » Data Structure » Queue 
14.3.3.A queue based on the linked list
# 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 Error\n");
      exit(0);
   }
   temp->data = value;
   temp->link=NULL;
   if(*rear == NULL)
   {
      *rear = temp;
      *front = *rear;
   }
   else
   {
      (*rear)->link = temp;
      *rear = temp;
   }
}

void delete(struct node **front, struct node **rear, int *value)
{
   struct node *temp;
   if((*front == *rear&& (*rear == NULL))
   {
      printf(" The queue is empty cannot 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;

   insert(&front,&rear,1);
   insert(&front,&rear,2);  
   insert(&front,&rear,3);
   insert(&front,&rear,4);

   delete(&front,&rear,&value);
   printf("The value deleted is %d\n",value);

   delete(&front,&rear,&value);
   printf("The value deleted is %d\n",value);

   delete(&front,&rear,&value);
   printf("The value deleted is %d\n",value);

}
The value deleted is 1
The value deleted is 2
The value deleted is 3
14.3.Queue
14.3.1.Queues
14.3.2.Array Implementation of a Stack
14.3.3.A queue based on the linked list
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.