Queue implementation using array

Problem statement
Write a c program to implement queue using array 
your program should have these functions 

  1. adding an element to queue
  2. deleting element from queue
  3. printing queue  
#include<stdio.h>
#define MAX 20
typedef struct que{
  int data[MAX];
  int st;
  int end;
  int total;   // total number of elements in the queue 
}que,ptr;
que init(que a);
que delete(que a);
que add(que a);
void print(que a);
int main()
{
  int i,n;
  que a;
  a=init(a);
  for(i=0;i<50;i++)
    {
      printf("enter 1 to add, 2 to remove, 3 to print,4 to exit ");
      scanf("%d",&n);
      if(n==1)
{
 a=add(a);
}
      else if(n==2)
{
 a=delete(a);
}
      else if(n==3)
{
 print(a);
}
      else if(n==4)
{
 break ;
}
      else
{
 printf("unable to recognise \n");
}
    }
  return 0;
}
que init(que a)
{
  a.st=a.end=a.total=0;
  return a;
}
que delete(que a)
{
  if(a.total==0)
    {
      printf("no member exist empty queue \n");
    }
  else
    {
      a.st++;
      a.total--;
      if(a.st==MAX)
{
 a.st=0;
}
    }
  return a;
}
que add(que a)
{
  int temp;
  if(a.total<MAX)
    {
      printf("enter element to add ");
      scanf("%d",&temp);
      a.data[a.end]=temp;
      a.end++;
      a.total++;
      if(a.end==MAX)
{
 a.end=0;
}
    }
  else
    {
      printf("memory overflow \n");
    }
  return a;
}
void print(que a)
{
  if(a.total==0)
    {
      printf("empty queue \n");
    }
  else
    {
      printf("the elements in the queue are ");
      while(a.st!=a.end)
{
 if(a.st==MAX)
   {
     a.st=0;
   }
 printf("%d ",a.data[a.st]);
 a.st++;
}
      printf("\n");
    }
  return ;
}

No comments:

Post a Comment