#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");
}
}
0 Comments