Hello, coders of Space of Coders!
Implementation of Queue Data Structure using linked list in C++ is below:
Note:- Scroll horizontally to see the full line of code.
#include<iostream>
using namespace std;
class node{
public:
int data;
node* next;
node(int x){
data = x;
next = NULL;
}
};
class queue{
public:
node* front;
node* rear;
queue(){
front = NULL;
rear = NULL;
}
void enqueue(int x){
node* n = new node(x);
if(front==NULL){
rear = n;
front = n;
return;
}
rear->next = n;
rear = n;
}
void dequeue(){
if(front==NULL){
cout<<"Queue is Empty!";
return;
}
node* todelete = front;
front = front->next;
delete todelete;
}
int frontElement(){
if(front==NULL){
cout<<"Queue is Empty!";
return -1;
}
return front->data;
}
int rearElement(){
if(front==NULL){
cout<<"Queue is Empty!";
return -1;
}
return rear->data;
}
int size(){
if(front==NULL){
cout<<"Queue is Empty!";
return 0;
}
int sum = 0;
node* temp = front;
while(temp!=NULL){
sum+=1;
temp = temp->next;
}
return sum;
}
void displayQueue(){
if(front==NULL){
cout<<"Queue is Empty!";
return;
}
node* temp = front;
while(temp!=NULL){
cout<<temp->data<<" ";
temp = temp->next;
}
cout<<endl;
}
};
int main(){
queue q;
q.enqueue(5);
q.enqueue(10);
q.displayQueue();
q.dequeue();
q.displayQueue();
q.enqueue(15);
q.displayQueue();
q.enqueue(25);
q.displayQueue();
q.enqueue(10);
q.displayQueue();
q.dequeue();
q.dequeue();
q.dequeue();
q.dequeue();
q.enqueue(45);
q.displayQueue();
cout<<"The size of Queue is: "<<q.size()<<endl;;
cout<<"The front element of Queue is: "<<q.frontElement()<<endl;
cout<<"The rear element of Queue is: "<<q.rearElement()<<endl;
return 0;
}
Thank you!!!
Comments
Post a Comment