queue by array

#include<stdio.h>
#include<stdlib.h>
#define Max_val 20
struct node
{
 int qu[Max_val];
 int front;
 int rare;
};
typedef struct node Node;
void enqueue(Node *ptr,int data);
void dequeue(Node *ptr);
void Display(Node ptr);
int main()
{
  Node s;
  s.front=-1;
  s.rare=-1;
  int choice;
  while(1)
  {
   printf("Enter 1 for display,2 for enqueue\n");
   printf("ENter 3 for dequeue\n");

   printf("Enter choice:");
   scanf("%d",&choice);
   if(choice <=0)
   {
      break;
   }
   else
   {
     switch(choice)
     {
       case 1:
       {
         Display(s);
         break;
       }
       case 2:
       {
         int data;
         printf("Enter data to add to queue:");
         scanf("%d",&data);
         enqueue(&s,data);
         break;
       }
       case 3:
       {
         dequeue(&s);
         break;
       }
       default :
       {
        printf("Enter valid choice\n");
       }
     

     }

   }
  }
 
 
}
void enqueue(Node *ptr,int data)
{
  if(ptr->rare==Max_val-1)
  {
   printf("Queue ids full\n");
  }
  else
  {
    ptr->qu[++ptr->rare]=data;
   
        if(ptr->front==-1)
         {
            ptr->front=0;
         }
  }
}
void dequeue(Node *ptr)
{
  if(ptr->rare==-1 && ptr->front==-1)
   {
     printf("Queue is empty\n");
   }
  else
    {
       printf("Element dequeued is:%d\n",ptr->qu[ptr->front]);
       ++ptr->front;
        if(ptr->rare==0)
        {
          ptr->rare=-1;
          ptr->front=-1;
        }  
    }
}
void Display(Node ptr)
{
 if(ptr.rare==-1 && ptr.front==-1)
 {
   printf("Queue is empty\n");
 }
 else
 {
   printf("Queue elements is:");
   for(int i=ptr.front;i<=ptr.rare;i++)
   {
    printf("%d ",ptr.qu[i]);
   }
   printf("\n");
 }

}


Post a Comment

0 Comments