How to implement queue using Linked list in C++
In this tutorial, we will learn how to implement a Queue using a linked list in the C++ programming language.
queue implementation using linked list in C++
A queue is a form of a data structure that follows the FIFO(first in first out) concept i.e in case of a queue the element which we will insert first, then the same will get deleted first.
In a queue, implementation elements we insert elements from the rear end, and the elements will be removed from the front. We can imagine a queue as a container adapter that holds data of equivalent datatype.
1. Enqueue: inserting an element at the rear end of the queue.
2. Dequeue: remove an element from the front of the queue.
#include<iostream>
using namespace std;
struct Node
{
int data;
Node *next ;
};
class Queue
{
Node *front, *rear;
public:
Queue()
{
front = rear = NULL; // Initially
}
void Enqueue(int elem) // for insertion from rear
{
Node *newnode;
newnode = new Node;
newnode->data = elem;
newnode->next = NULL;
if(front == NULL)
front = rear = newnode;
else
{
rear->next = newnode;
rear = newnode;
}
}
void Dequeue() // for deletion from front
{
Node *temp;
if(front == NULL)
cout<<"Queue is Empty";
else
{
temp= front;
front = front->next;
delete temp;
}
}
void display()
{
Node *temp;
temp= front;
while(temp!=NULL) // (temp!= rear->next)
{
cout<<temp->data<<"\t";
temp = temp->next;
}
cout<<endl;
}
};
int main()
{
Queue Q1;
Q1.Enqueue(10);
cout<<"Queue after First Enqueue :";
Q1.display();
cout<<"\n";
Q1.Enqueue(20);
cout<<"Queue after Second Enqueue :";
Q1.display();
cout<<"\n";
Q1.Dequeue();
cout<<"Queue after Dequeue :";
Q1.display();
}
OUTPUT:
Queue after first Enqueue: 10
Queue after Second Enqueue: 10 20
Queue after Dequeue: 20
You may also like to visit:
Leave a Reply