Saturday, 28 April 2012

Linked List Implementation of a Queue in C


#include<stdio.h>
#include<conio.h> 
#define MAX 5

void main()
{
 int Q[MAX],item;
 int front,rear,response,choice; 
 clrscr();
 
 front = rear = -1;
 do
 {
  printf("\n 1. Insert into Q");
  printf("\n 2. Delete from Q");
  printf("\n 3. Exit");
  printf("\nSelect your choice :");
  scanf("%d",&choice);
  switch(choice)
  {
   case 1 :
   printf("\nEnter item : ");
   scanf("%d",&item);
   response = insert(Q,&rear,&item);
   if ( response == - 1)
    printf("Queue is full");
   else
    printf("Inserted item in Q");
   break;
   case 2 : 
   response = delete(Q,&front,&rear,&item);
   if ( response == -1 )
    printf("Queue is empty ");
   else
    printf("Deleted item is : %d", item);
    break;
   case 3 : exit(0);
  } 
 } while(1);
} 

int insert(int Q[MAX], int *rear , int *item)
{
 if ( *rear == MAX -1 )
  return(-1);
 else
 {
  *rear = *rear + 1;
  Q[*rear] = *item;
  return(1);
 } 
} 

int delete( int Q[MAX], int *front, int *rear , int *item)
{
 if ( *front == *rear)
  return(-1);
 else
 {
  (*front)++;
  *item = Q[*front];
  return(1);
 } 
} 

No comments:

Post a Comment