Server : Apache System : Linux profile 3.10.0-1160.88.1.el7.x86_64 #1 SMP Tue Mar 7 15:41:52 UTC 2023 x86_64 User : apache ( 48) PHP Version : 8.0.28 Disable Function : NONE Directory : /var/www/html/bibhas.ghoshal/Data_Structures_2022/ |
//
// queue.c
//
//
// Created by Bibhas Ghoshal on 18/04/23.
//
#include <stdio.h>
struct fifo {
int value;
struct fifo *next;
};
typedef struct fifo queue;
queue *front, *rear;
// Create a queue
void createq (queue **front, queue **rear)
{
*front = NULL;
*rear = NULL;
}
//Inserting an element in queue (Enqueue)
void enqueue (queue **front, queue **rear, int x)
{
queue *ptr;
ptr = (queue *) malloc(sizeof(queue));
if (*rear == NULL) /* Queue is empty */
{
*front = ptr;
*rear = ptr;
ptr->value = x;
ptr->next = NULL;
}
else /* Queue is not empty */
{
(*rear)->next = ptr;
*rear = ptr;
ptr->value = x;
ptr->next = NULL;
}
}
// Deleting an element from queue (Dequeue)
int dequeue (queue **front, queue **rear)
{
queue *old; int k;
if (*front == NULL) /* Queue is empty */
printf ("\n Queue is empty");
else if (*front == *rear) /* Single element */
{
k = (*front)->value;
free (*front); front = rear = NULL;
return (k);
}
else
{
k = (*front)->value; old = *front;
*front = (*front)->next;
free (old);
return (k);
}
}
// Checking if empty
int isempty (queue *front)
{
if (front == NULL)
return (1);
else
return (0);
}
main()
{
queue *Af, *Ar;
createq (&Af, &Ar);
enqueue (&Af,&Ar,10);
enqueue (&Af,&Ar,20);
enqueue(&Af,&Ar,30);
printf ("\n %d %d \n",
dequeue (&Af,&Ar),
dequeue(&Af,&Ar));
// printf ("\n %d \n",
// dequeue(&Af,&Ar));
if (isempty(Af))
printf ("\n Q is empty");
}