Sh3ll
OdayForums


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/html/bibhas.ghoshal/Data_Structures_2022/queue.c
//
//  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");
}


ZeroDay Forums Mini