Queue

Run Settings
LanguageJavaScript
Language Version
Run Command
class Node { constructor(data) { this.data = data; this.next = null; } } class Queue { constructor() { this.first = null; this.last = null; this.length = 0; } enqueue(value) { const newNode = new Node(value); if( this.length === 0) { this.first = newNode; this.last = newNode; } else { this.last.next = newNode; this.last = newNode; } this.length++; } peek() { return this.first; } dequeue() { if(this.length === 0) { return null; } if(this.first === this.last) { this.last = null; } const temp = this.first; this.first = this.first.next; this.length--; return temp; } isEmpty() { return (this.length === 0) ? true : false; } } const queue = new Queue(); console.log(queue); queue.enqueue(1); queue.enqueue(2); queue.enqueue(3); console.log(queue.dequeue()); console.log(queue.dequeue()); console.log(queue.peek()); console.log(queue.isEmpty()); console.log(queue.dequeue()); console.log(queue.isEmpty()); console.log(queue.dequeue());
Editor Settings
Theme
Key bindings
Full width
Lines