Skip to content

Instantly share code, notes, and snippets.

@na5imuzzaman
Last active March 1, 2022 14:43
Show Gist options
  • Save na5imuzzaman/6575c0dd8dafddaec0f961d28f3ec01c to your computer and use it in GitHub Desktop.
Save na5imuzzaman/6575c0dd8dafddaec0f961d28f3ec01c to your computer and use it in GitHub Desktop.
Queue implementation in C++ using Linked List.
/* Nasim */
#include<iostream>
using namespace std;
class Queue
{
public:
int data;
Queue *next;
};
Queue *Front = NULL,*Tail = NULL;
bool isEmpty()
{
if (Front == NULL)
return true;
return false;
}
Queue* getNewNode(int n)
{
Queue *newNode = new Queue();
newNode->data = n;
newNode->next = NULL;
return newNode;
}
void Enqueue(int n)
{
Queue *newNode = getNewNode(n);
if (isEmpty())
{
Front = newNode;
Tail = newNode;
}
else
{
Tail -> next = newNode;
Tail = Tail->next;
/*Tail = Front;
while(Tail->next != NULL)
Tail = Tail->next;
Tail -> next = newNode;*/
}
}
void Dequeue()
{
if (isEmpty())
{
cout<<"Sorry! List is empty.\n";
return;
}
Queue *Delete_Node = Front;
Front = Front->next;
delete Delete_Node;
}
void print()
{
if (!isEmpty())
{
Queue *root = Front;
while (root != NULL)
{
cout<<root->data<<"\t";
root = root->next;
}
cout<<"\n";
}
}
void Deprint()
{
if (!isEmpty())
{
Queue *root = Front,*deleteNode;
while (root != NULL)
{
cout<<root->data<<"\t";
deleteNode = root;
root = root->next;
delete deleteNode;
}
cout<<"\n";
}
}
int main()
{
Dequeue();
Enqueue(2);
print();
Dequeue();
print();
Dequeue();
Enqueue(3);
print();
Enqueue(4);
print();
Dequeue();
print();
Enqueue(5);
print();
Enqueue(6);
print();
Enqueue(7);
print();
Dequeue();
print();
Enqueue(8);
print();
Enqueue(9);
print();
Enqueue(1);
Deprint();
return 0;
}
@muhammadSaifullahACDA
Copy link

that's great. It really helps me.
In my code, I can't dequeue element . this one really works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment