Implement Queue using Linked Lists

Class Queuenode{
    int data;
    Queuenode* next;    
    Queuenode(int d)
    {
        data= d;
        next=NULL;
    }
};

Class queue{
    Queuenode* front, *rear;
    queue()
    {
        front=rear=NULL;
    }
    
    void enqueue(int x)
    {
        //create a new node
        Queuenode* temp= new Queuenode(x);
        if(rear==NULL)
            front = rear= temp;
            return;
        
        rear->next=temp;
        rear=temp;
    }

    void dequeue()
    {
        if(front==NULL)
            return;
        //store previous front value and move front node ahead
        Queuenode* temp= front;
        front= front->next;

        if(front==NULL)
            rear= NULL;
        delete(temp);
    }
};

Popular posts from this blog

Finding the Subarrays (Hackerearth)

Palindrome Index (Hackerrank)

Sherlock and Array (Hackerrank)