Quick actions

cmd+k|ctrl+k

Navigation

Languages

Queue Impl

Snippet info

Language

Cpp

Visibility

public

Author

preeti.gaur1790

Created

2022-05-24T13:52:14.461331Z

Updated

2022-05-28T11:12:44.471973Z

#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;
}
    
    
    
    
    
INFO