Question: #define SIZE 5 #define NULL _ VALUE 0 void next ( int * pointer ) ; void enqueue ( ) ; void dequeue ( )

#define SIZE 5
#define NULL_VALUE 0
void next(int *pointer);
void enqueue();
void dequeue();
void print_queue();
int buffer[SIZE];
int head;
int tail;
int main(void)
{
int menu;
while (1)
{
printf("Select a number (1. Enqueue 2. Dequeue 3. Queue Print 4. Exit): ");
scanf("%d", &menu);
if (menu ==1)
enqueue();
else if (menu ==2)
dequeue();
else if (menu ==3)
print_queue();
else if (menu ==4)
break;
}
return 0;
}
void next(int *pointer)
{
if (*pointer != SIZE -1)
*pointer =*pointer +1;
else
*pointer = NULL_VALUE;
}
void enqueue()
{
int data;
printf("Enqueue a number: ");
scanf("%d", &data);
if (NULL_VALUE != buffer[head])
{
printf("Queue is full
");
return;
}
buffer[head]= data;
next(&head);
}
void dequeue()
{
int data = buffer[tail];
if (NULL_VALUE == data)
{
printf("Queue is empty
");
return;
}
printf("Dequeued number: %d
", data);
buffer[tail]= NULL_VALUE;
next(&tail);
}
void print_queue()
{
int i;
printf("Queue is: ");
for (i =0; i < SIZE; i++)
printf("%d ", buffer[i]);
printf("\tHead: %d\tTail: %d
", head, tail);
}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!