Quick actions

cmd+k|ctrl+k

Navigation

Languages

Queue

Snippet info

Language

JavaScript

Visibility

public

Author

varun.muriyanat

Created

2025-05-02T11:37:06.470684Z

Updated

2025-05-02T14:25:24.591642Z

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) {
        let node = new Node(value);
        
        // if the queue is empty
        if (this.length === 0) {
            this.first = node;
            this.last = node;
            this.length++;
            return this;
        }
        
        // if the queue is not empty
        this.last.next = node;
        this.last = node;
        this.length++;
        return this;
    }
    
    dequeue() {
        // if the queue is empty
        if (this.length === 0) {
            return null;
        }
        
        // if the queue has only 1 element
        if (this.length === 1) {
            let val = this.first;
            this.first = null;
            this.last = null;
            this.length--;
            return val.value;
        }
        
        let val = this.first;
        this.first = this.first.next;
        this.length--;
        return val.value;
    }
    
    isEmpty() {
        return (this.length === 0);
        
    }
    
    // print the elements in the queue
    printList() {
        const values = [];
        let val = this.first;
        while (val !== null) {
            values.push(val.value);
            val = val.next;
        }
        console.log(values.join(","));
    }
}

const myQueue = new Queue();
// console.log(myQueue.isEmpty());
// console.log(myQueue.dequeue());
myQueue.enqueue(10);
myQueue.enqueue(20);
myQueue.enqueue(30);
myQueue.enqueue(40);
myQueue.printList();
console.log(myQueue.dequeue());
myQueue.printList();
// console.log(myQueue.peek());
// myQueue.printList();
// console.log(myQueue.dequeue());
// myQueue.printList();
// console.log(myQueue.dequeue());
// myQueue.printList();
// console.log(myQueue.isEmpty());
// console.log(myQueue.length);
// console.log(myQueue);
INFO