loader image

C Program to Implement Queue using linked list

Aim: Implement queue operations using linked list in C

#include<stdio.h>   
#include<stdlib.h>  
struct node   
{  
    int data;   
    struct node *next;  
};  
struct node *front;  
struct node *rear;   
void insert();  
void dequeue();  
void display();  
void main ()  
{  
    int choice;
    printf("\nQUEUE OPERATIONS USING LINKED LIST");
    printf("\n1.insert an element\n2.Delete an element\n3.Display the queue\n4.Exit");  
    while(choice != 4)   
    {    
        printf("\nEnter your choice ?");  
        scanf("%d",& choice);  
        switch(choice)  
        {  
            case 1:  
            insert();  
            break;  
            case 2:  
            dequeue();  
            break;  
            case 3:  
            display();  
            break;  
            case 4:  
            exit(0);  
            break;  
            default:   
            printf("\nEnter valid choice\n");  
        }  
    }  
}  
void insert()  
{  
    struct node *ptr;  
    int item;   
      
    ptr = (struct node *) malloc (sizeof(struct node));  
    if(ptr == NULL)  
    {  
        printf("\nOVERFLOW\n");  
        return;  
    }  
    else  
    {   
        printf("\nEnter value : ");  
        scanf("%d",&item);  
        ptr -> data = item;  
        if(front == NULL)  
        {  
            front = ptr;  
            rear = ptr;   
            front -> next = NULL;  
            rear -> next = NULL;  
        }  
        else   
        {  
            rear -> next = ptr;  
            rear = ptr;  
            rear->next = NULL;  
        }  
    }  
}     
void dequeue()  
{  
    struct node *ptr;  
    if(front == NULL)  
    {  
        printf("\nUNDERFLOW\n");  
        return;  
    }  
    else   
    {  
        ptr = front;  
        front = front -> next;  
        free(ptr);  
    }  
}  
void display()  
{  
    struct node *ptr;  
    ptr = front;      
    if(front == NULL)  
    {  
        printf("\nEmpty queue\n");  
    }  
    else  
    {   printf("\nElements in the queue are : \n");  
        while(ptr != NULL)   
        {  
            printf("\n%d\n",ptr -> data);  
            ptr = ptr -> next;  
        }  
    }  
}  
Output
QUEUE OPERATIONS USING LINKED LIST
1.insert an element
2.Delete an element
3.Display the queue
4.Exit
Enter your choice ?1

Enter value : 5

Enter your choice ?1

Enter value : 6

Enter your choice ?1

Enter value : 7

Enter your choice ?1

Enter value : 8

Enter your choice ?3

Elements in the queue are :

5

6

7

8

Enter your choice ?2

Enter your choice ?3

Elements in the queue are :

6

7

8

Enter your choice ?4
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Scroll to Top