Queue

Run Settings
LanguageJavaScript
Language Version
Run Command
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) { // @ -> @ -> @ -> null const newNode = new Node(value); if (this.length === 0) { this.first = newNode; this.last = newNode; console.log(this); } else { this.last.next = newNode; this.last = newNode; } 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 queue = new Queue(); queue.enqueue(10); queue.enqueue(11); queue.enqueue(12); queue.enqueue(13); queue.enqueue(14); console.log(queue.enqueue(20)); console.log(queue.dequeue());
Editor Settings
Theme
Key bindings
Full width
Lines