/*implement the operations on the tail - void enqueue (struct queue *my_queue, int key) and int dequeue (struct queue my_queue) (together with a queue initialization function and a display of its elements) using a vector as the basic structure.Your implementation should consider cases of overflow on insertion (tail full, can not insert), or underflow when deleting (tail is empty, can not delete element).How many elements can contain a maximum tail so implemented if the base vector has a CAPACITY dimension.Suggestion: The queue structure should contain a CAPACITY (date, constant) vector, both the head and the tail./
#include<stdlib.h>
#include<stdio.h>
#define CAPACITY 100
typedef struct queue
{
int vec[CAPACITY];
int size;
int head, tail;
}queue;
void enqueue(struct queue *my_queue, int key)
{
if(my_queue->size>CAPACITY)
{
printf(“nu mai putem adauga deoarece nu mai avem spatiu”);
}
if(my_queue->size==0)
{
my_queue->tail=0;
my_queue->head=0;
my_queue->vec[my_queue->tail]=key;
my_queue->tail++;
my_queue->size++;
}
else {
if((my_queue->size)<CAPACITY)
{
my_queue->vec[my_queue->tail]=key;
my_queue->tail++;
my_queue->size++;
}}}
void dequeue(struct queue *my_queue)
{
int n;
if(my_queue->size==0)
printf(“nu mai putem sterge”);
else
{
my_queue->vec[my_queue->head]=NULL;
my_queue->head++;
my_queue->size–;}
}
void afisare(struct queue *my_queue)
{
int j;
for(j=my_queue->head;j<=my_queue->tail;j++)
printf("%d",my_queue->vec[j]);
}
*/
int main()
{
struct queue *my_queue;
int x,n;
printf("inseram n elemente in coada");
scanf("%d",&n);
while(n)
{
printf("elementele care trebuie inserate sunt:");
scanf("%d",&x);
enqueue(&my_queue,x);
n--;
}
afisare(&my_queue);
dequeue(&my_queue);
afisare(&my_queue);
return 0;
}
What is the problem?