Header Ads Widget

Responsive Advertisement

Queue Using Linked List


 

#include <stdio.h>
#include <stdlib.h>

struct Node *f = NULL;
struct Node *r = NULL;

struct Node
{
    int data;
    struct Node *next;
};

void link_list_Traversal_print(struct Node *ptr)
{
    printf("\nPrinting The Linked List...\n");
    while (ptr != NULL)
    {
       
        printf("Element : %d\n", ptr->data);
        ptr = ptr->next;
       
    }
}

void enQueue(int val)
{
    struct Node *n = (struct Node *)malloc(sizeof(struct Node));
    if (n == NULL)
    {
        printf("This Queue is Full....\n");
    }
    else
    {
        n->data = val;
        n->next = NULL;
        if (f == NULL)
        {
            f = r = n;
        }
        else
        {
            r->next = n;
            r = n;
        }
    }
}

int deQueue()
{
    int val = -1;
    struct Node *n = f;
    if (f == NULL)
    {
        printf("\nThis Queue is Empty....\n");
    }
    else
    {
        f = f->next;
        val = n->data;
        free(n);
    }
    return val;
}


int main()
{
    link_list_Traversal_print(f);
    //printf("Dequeueing Element : %d\n",deQueue());
    enQueue(36);
    enQueue(3);
    enQueue(6);
    enQueue(356);
    //link_list_Traversal_print(f);
    printf("Dequeueing Element : %d\n",deQueue());
    printf("Dequeueing Element : %d\n",deQueue());
    // printf("Dequeueing Element : %d\n",deQueue());
    // printf("Dequeueing Element : %d\n",deQueue());
    link_list_Traversal_print(f);
    return 0;
}

Post a Comment

0 Comments