Quick actions

cmd+k|ctrl+k

Navigation

Languages

Queue Implementation

Snippet info

Language

JavaScript

Visibility

public

Author

anikeshdey2020

Created

2023-02-28T12:16:12.628014Z

Updated

2023-02-28T12:16:12.628014Z

class Node {
    constructor(value){
        this.value = value
        this.next = null
    }
}

class Queue{
    constructor(){
        this.first = null;
        this.last = null;
        this.length = 0;
    }

    peek(){
        return this.first;
    }

    enqueue(value){
        const node = new Node(value);

        if(!this.first){
            this.first = node;
        } else {
            this.last.next = node;
            //this.first.next = node;
        }
        
        this.last = node;
        this.length++;
        return this;
    }

    dequeue(){
        if(!this.first){
            return null;
        }

        if(this.first == this.last){
            this.last = null; 
        }

        this.first = this.first.next;
        this.length--;
        return this;
    }
}

const myQueue = new Queue();

myQueue.enqueue("Ami");

myQueue.enqueue("Tumi");

myQueue.enqueue("Onno keu");

myQueue.dequeue();

//myQueue.peek();
INFO