Queue Impl
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
class Node {
public :
int data;
Node *next;
Node() {
data = 0;
next = NULL;
}
Node(int data) {
this->data = data;
this->next = NULL;
}
};
class Queue {
Node *head;
Node *tail;
public :
void enqueue(int data);
void dequeue();
void display();
bool isEmpty();
};
bool Queue::isEmpty() {
if(head == NULL) {
return true;
}
return false;
}
void Queue::enqueue(int data) {
Node *newNode = new Node(data);
cout << "enqueue : " << data << endl;
if(head == NULL) {
head = newNode;
tail = newNode;
return;
}
while(tail->next != NULL) {
tail = tail->next;
}
tail->next = newNode;
tail = newNode;
}
void Queue::dequeue() {
if(head == NULL) {
cout << "Queue is Empty" << endl ;
return;
}
Node *temp = head;
cout << "dequeue : " << temp->data << endl;
head = head->next;
delete temp;
}
void Queue::display() {
if(head == NULL) {
cout << "Stack is Empty" << endl ;
return;
}
cout << "Queue Elements : " << endl;
Node *temp = head;
while(temp != NULL) {
cout << temp->data << endl;
temp = temp->next;
}
}
int main() {
Queue *queue = new Queue();
queue->enqueue(1);
queue->enqueue(2);
queue->enqueue(3);
queue->enqueue(4);
queue->display();
queue->dequeue();
queue->display();
queue->enqueue(5);
queue->display();
queue->dequeue();
queue->display();
queue->dequeue();
queue->display();
queue->dequeue();
queue->display();
queue->dequeue();
queue->display();
return 0;
}
Cpp
INFO